Made addressdb/searchAddress more strict: all tokens must be found

This commit is contained in:
Frank Schubert
2022-12-22 17:45:59 +01:00
parent b6e32ae4f3
commit 7af6a3a24d

View File

@@ -413,23 +413,32 @@ class AddressdbApicontroller extends mfBaseApicontroller {
$includes_int = false;
$count = 0;
$count_parts = 0;
$uniq_parts_count = 0;
$uniq_parts_found = [];
/*if($temp_add['oaid'] == "AT-8951-1592d361") {
var_dump($temp_add);
}*/
foreach($search_parts as $p) {
$p = $this->db->escape(trim($p));
if(strlen($p) === 0) continue;
$uniq_parts_count++;
if(is_numeric(($p))) {
$includes_int = true;
$count_parts++;
if(substr_count(strtolower($temp_add['sort_key']), strtolower($p))) {
$count++;
}
if(!in_array($p, $uniq_parts_found)) {
$uniq_parts_found[] = $p;
}
} else {
$p_count = substr_count(strtolower($temp_add['sort_key']), strtolower($p));
if($p_count) {
$count += $p_count;
$count_parts++;
if(!in_array($p, $uniq_parts_found)) {
$uniq_parts_found[] = $p;
}
}
}
}
@@ -443,14 +452,16 @@ class AddressdbApicontroller extends mfBaseApicontroller {
//var_dump(count($search_parts), $count, $count_parts, $temp_add);
if($count_parts == count($search_parts)) {
$count = 50;
}
//var_dump($count);exit;
if(!array_key_exists($count, $sorted_addresses)) {
$sorted_addresses[$count] = [];
//var_dump($uniq_parts_count, $uniq_parts_found);exit;
if($uniq_parts_count == count($uniq_parts_found)) {
if(!array_key_exists($count, $sorted_addresses)) {
$sorted_addresses[$count] = [];
}
$sorted_addresses[$count][] = $temp_add;
}
$sorted_addresses[$count][] = $temp_add;
}
//exit;