Increased (find|search)Address performance by using query instead of

view
This commit is contained in:
Frank Schubert
2022-12-14 17:04:24 +01:00
parent 2afd0ffa60
commit fe09e19e84
3 changed files with 352 additions and 7 deletions
+14 -7
View File
@@ -317,11 +317,11 @@ class AddressdbApicontroller extends mfBaseApicontroller {
if(!$p) continue;
if(in_array($p,$search_parts)) continue;
$search_parts[] = $p;
$gem_search[] = "gemeinde like '$p%'";
$ort_search[] = "ortschaft like '$p%'";
$strasse_search[] = "strasse like '$p%'";
$plz_search[] = "plz like '$p%'";
$hausnummer_search[] = "hausnummer like '$p%'";
$gem_search[] = "Gemeinde.name like '$p%'";
$ort_search[] = "Ortschaft.name like '$p%'";
$strasse_search[] = "Strasse.name like '$p%'";
$plz_search[] = "Plz.plz like '$p%'";
$hausnummer_search[] = "Hausnummer.hausnummer like '$p%'";
}
$where = "1=1";
@@ -329,7 +329,10 @@ class AddressdbApicontroller extends mfBaseApicontroller {
$where .= " AND netzgebiet_id IN (".implode(",", $this->filter_salescluster_ids).")";
}
$sql = "SELECT * FROM view_wohneinheit WHERE $where AND ((".implode(" OR ", $ort_search).") OR (".implode(" OR ", $strasse_search).") OR (".implode(" OR ", $plz_search).") OR (".implode(" OR ", $hausnummer_search).")) ORDER BY strasse, LENGTH(hausnummer), hausnummer, LENGTH(tuer),tuer, zusatz, LENGTH(num), num";
$sql = AddressDB::$wohneinheit_query;
$sql .= "\n WHERE $where AND ((".implode(" OR ", $ort_search).") OR (".implode(" OR ", $strasse_search).") OR (".implode(" OR ", $plz_search).") OR (".implode(" OR ", $hausnummer_search).")) ORDER BY strasse, LENGTH(hausnummer), hausnummer, LENGTH(tuer),tuer, zusatz, LENGTH(num), num";
//$sql = "SELECT * FROM view_wohneinheit WHERE $where AND ((".implode(" OR ", $ort_search).") OR (".implode(" OR ", $strasse_search).") OR (".implode(" OR ", $plz_search).") OR (".implode(" OR ", $hausnummer_search).")) ORDER BY strasse, LENGTH(hausnummer), hausnummer, LENGTH(tuer),tuer, zusatz, LENGTH(num), num";
$this->log->debug($sql);
$res = $this->db()->query($sql);
@@ -548,7 +551,11 @@ class AddressdbApicontroller extends mfBaseApicontroller {
}
//echo $where;
//var_dump($this->filter_salescluster_ids);exit;
$sql = "SELECT * FROM view_wohneinheit WHERE $where ORDER BY plz, gemeinde, ortschaft, strasse, LENGTH(hausnummer), hausnummer, block, stiege, stock, LENGTH(num), num, LENGTH(tuer), tuer";
$sql = AddressDB::$wohneinheit_query;
$sql .= " WHERE $where ORDER BY plz, gemeinde, ortschaft, strasse, LENGTH(hausnummer), hausnummer, block, stiege, stock, LENGTH(num), num, LENGTH(tuer), tuer";
//$sql = "SELECT * FROM view_wohneinheit WHERE $where ORDER BY plz, gemeinde, ortschaft, strasse, LENGTH(hausnummer), hausnummer, block, stiege, stock, LENGTH(num), num, LENGTH(tuer), tuer";
$this->log->debug($sql);
$res = $this->db()->query($sql);