Explorar o código

switch to (e)dismax query parser

Igor Wiedler %!s(int64=13) %!d(string=hai) anos
pai
achega
0b3e20d95d
Modificáronse 1 ficheiros con 5 adicións e 6 borrados
  1. 5 6
      src/Packagist/WebBundle/Controller/WebController.php

+ 5 - 6
src/Packagist/WebBundle/Controller/WebController.php

@@ -99,12 +99,11 @@ class WebController extends Controller
 
                 $select = $solarium->createSelect();
 
-                $queryParts = array();
-                foreach (array('name', 'description', 'tags') as $field) {
-                    $escaped = $select->getHelper()->escapePhrase($searchQuery->getQuery());
-                    $queryParts[] = $field.':'.$escaped.'';
-                }
-                $select->setQuery(implode(' OR ', $queryParts));
+                $dismax = $select->getDisMax();
+                $dismax->setQueryFields(array('name', 'description', 'tags'));
+                $dismax->setBoostQuery('name:"'.$searchQuery->getQuery().'"^2');
+                $dismax->setQueryParser('edismax');
+                $select->setQuery($searchQuery->getQuery());
 
                 $paginator = new Pagerfanta(new SolariumAdapter($solarium, $select));
                 $paginator->setMaxPerPage(15);