public function testSingleTermSearchTermDoesNotExists()
 {
     $docs = array(new TokensDocument(array("no", "tokens")));
     $collection = new DocumentArrayCollection($docs);
     $builder = new CollectionInvertedIndexBuilder($collection);
     $adapter = new ArrayDataReaderAdapter($builder->getIndex());
     $invertedIndex = new InvertedIndex($adapter);
     $this->assertEquals(array(), $invertedIndex->query("none"));
     $this->assertEquals(array(), $invertedIndex->query("php"));
 }
Пример #2
0
 /**
  * 
  * @param InvertedIndex $invertedIndex
  * @return array
  */
 public function queryIndex(InvertedIndex $invertedIndex)
 {
     $terms = array_keys($invertedIndex->getIndex());
     $found = [];
     foreach ($terms as $term) {
         foreach ($this->getQuery() as $queryTerm) {
             if (Text::contains($term, $queryTerm)) {
                 $found[$term] = $invertedIndex->getDocumentIdsByTerm($term);
             }
         }
     }
     return $found;
 }
Пример #3
0
 /**
  * @param InvertedIndex $invertedIndex
  * @return arrray
  */
 public function queryIndex(InvertedIndex $invertedIndex)
 {
     $r = $invertedIndex->getDocumentIdsByTerm($this->getQuery()[0]);
     if (!empty($r)) {
         return [$this->getQuery()[0] => $r];
     }
     // do partial matches
     $terms = array_keys($invertedIndex->getIndex());
     $found = [];
     foreach ($terms as $term) {
         if (Text::contains($term, $this->getQueryString())) {
             $found[$term] = $invertedIndex->getDocumentIdsByTerm($term);
         }
     }
     return $found;
 }