]> git.openstreetmap.org Git - nominatim.git/commitdiff
stack importance instead of multiplying it for order
authorSarah Hoffmann <lonvia@denofr.de>
Thu, 31 Jan 2013 19:11:40 +0000 (20:11 +0100)
committerSarah Hoffmann <lonvia@denofr.de>
Thu, 31 Jan 2013 19:11:40 +0000 (20:11 +0100)
website/search.php

index 066e2c817ef4c1120ee4974d7b056fb82a367c5a..0f851eae2bb3e5f45b391b1a73415971d42144a8 100755 (executable)
                                                        if ($sNearPointSQL) $aOrder[] = "ST_Distance($sNearPointSQL, centroid) asc";
 
                                                        $sImportanceSQL = '(case when importance = 0 OR importance IS NULL then 0.75-(search_rank::float/40) else importance end)';
-                                                       if (sizeof($aSearch['aFullNameAddress']))
-                                                               $sImportanceSQL .= '*(select count(*) from (select unnest(ARRAY['.join($aSearch['aFullNameAddress'],",").']) INTERSECT select unnest(nameaddress_vector))s)';
-
                                                        if ($sViewboxSmallSQL) $sImportanceSQL .= " * case when ST_Contains($sViewboxSmallSQL, centroid) THEN 1 ELSE 0.5 END";
                                                        if ($sViewboxLargeSQL) $sImportanceSQL .= " * case when ST_Contains($sViewboxLargeSQL, centroid) THEN 1 ELSE 0.5 END";
                                                        $aOrder[] = "$sImportanceSQL DESC";
+                                                       if (sizeof($aSearch['aFullNameAddress']))
+                                                               $aOrder[] = '(select count(*) from (select unnest(ARRAY['.join($aSearch['aFullNameAddress'],",").']) INTERSECT select unnest(nameaddress_vector))s) DESC';
+
                                                
                                                        if (sizeof($aTerms))
                                                        {
                                                                $sSQL = "select place_id";
-                                                               if (sizeof($aSearch['aFullNameAddress']))
-                                                                       $sSQL .= ', (select count(*) from (select unnest(ARRAY['.join($aSearch['aFullNameAddress'],",").']) INTERSECT select unnest(nameaddress_vector))s) as fullwords'; 
-                                                               else
-                                                                       $sSQL .= ', 0';
                                                                $sSQL .= " from search_name";
                                                                $sSQL .= " where ".join(' and ',$aTerms);
                                                                $sSQL .= " order by ".join(', ',$aOrder);