From 7af6a3a24d36c8f7bfe619da2b8f14bdfa9a5019 Mon Sep 17 00:00:00 2001 From: Frank Schubert Date: Thu, 22 Dec 2022 17:45:59 +0100 Subject: [PATCH] Made addressdb/searchAddress more strict: all tokens must be found --- application/Api/v1/AddressdbApicontroller.php | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/application/Api/v1/AddressdbApicontroller.php b/application/Api/v1/AddressdbApicontroller.php index 6a64c3dec..9dc91233c 100644 --- a/application/Api/v1/AddressdbApicontroller.php +++ b/application/Api/v1/AddressdbApicontroller.php @@ -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;