Made addressdb/searchAddress more strict: all tokens must be found
This commit is contained in:
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user