コード例 #1
0
ファイル: LocationTest.php プロジェクト: NicolasSchmutz/cm
 public function testQueryNameSuggestion()
 {
     $expected = array('Arinsal' => array('Arinsal'), 'Arins' => array('Arinsal'), 'ARI' => array('Arinsal'), 'el serrat' => array('El Serrat'), 'ENCAMP' => array('Encamp', 'Encamp'), 'Soldeu Andorra' => array('Soldeu'), 'Andorra Soldeu' => array('Soldeu'), 'El serrat Andorra' => array('El Serrat'), 'Andorra El serrat' => array('El Serrat'), 'El Andorra serrat' => array('El Serrat'), 'El Andor ser' => array('El Serrat'), 'El Andorra' => array('El Tarter', 'El Serrat'), 'serrat Andorra' => array('El Serrat'), 'Merit ad' => array('Meritxell'));
     foreach ($expected as $term => $expectedList) {
         $searchQuery = new CM_Elasticsearch_Query_Location();
         $searchQuery->queryNameSuggestion($term);
         $source = new CM_PagingSource_Elasticsearch_Location($searchQuery);
         $this->_assertItemsByName($expectedList, $source->getItems(), 'Wrong items for term `' . $term . '`.');
     }
 }
コード例 #2
0
ファイル: Suggestions.php プロジェクト: cargomedia/cm
 /**
  * @param string                 $term
  * @param int                    $minLevel
  * @param int                    $maxLevel
  * @param CM_Model_Location|null $sortDistanceLocation
  * @param CM_Model_Location|null $scopeLocation
  */
 public function __construct($term, $minLevel, $maxLevel, CM_Model_Location $sortDistanceLocation = null, CM_Model_Location $scopeLocation = null)
 {
     $term = (string) $term;
     $minLevel = (int) $minLevel;
     $maxLevel = (int) $maxLevel;
     $query = new CM_Elasticsearch_Query_Location();
     $query->filterLevel($minLevel, $maxLevel);
     if ($scopeLocation) {
         $query->filterLocation($scopeLocation);
     }
     if (strlen($term) > 0) {
         $query->queryNameSuggestion($term);
     }
     $query->sortLevel();
     if ($sortDistanceLocation) {
         $query->sortDistance($sortDistanceLocation);
     }
     $query->sortScore();
     $source = new CM_PagingSource_Elasticsearch_Location($query);
     $source->enableCacheLocal();
     parent::__construct($source);
 }