示例#1
0
 function testCamelCaseEnabledWithStemming()
 {
     $index = new Search_Elastic_Index($this->connection, 'test_index');
     $index->setCamelCaseEnabled(true);
     $index->destroy();
     $typeFactory = $index->getTypeFactory();
     $index->addDocument(['object_type' => $typeFactory->identifier('wiki page'), 'object_id' => $typeFactory->identifier('CamelCase Words'), 'title' => $typeFactory->plaintext('CamelCase Words')]);
     $query = new Search_Query();
     $query->filterContent('Camels AND Word', 'title');
     $this->assertGreaterThan(0, count($query->search($index)));
 }
示例#2
0
 /**
  * @return Search_Index_Interface
  */
 function getIndex($indexType = 'data')
 {
     global $prefs, $tiki_p_admin;
     $writeMode = false;
     if ($indexType == 'data-write') {
         $indexType = 'data';
         $writeMode = true;
     }
     switch ($prefs['unified_engine']) {
         case 'lucene':
             Zend_Search_Lucene::setTermsPerQueryLimit($prefs['unified_lucene_terms_limit']);
             $index = new Search_Lucene_Index($this->getIndexLocation($indexType), $prefs['language'], $prefs['unified_lucene_highlight'] == 'y');
             $index->setCache(TikiLib::lib('cache'));
             $index->setMaxResults($prefs['unified_lucene_max_result']);
             $index->setResultSetLimit($prefs['unified_lucene_max_resultset_limit']);
             return $index;
         case 'elastic':
             $index = $this->getIndexLocation($indexType);
             if (empty($index)) {
                 break;
             }
             $connection = $this->getElasticConnection($writeMode);
             $index = new Search_Elastic_Index($connection, $index);
             $index->setCamelCaseEnabled($prefs['unified_elastic_camel_case'] == 'y');
             $index->setFacetCount($prefs['search_facet_default_amount']);
             return $index;
         case 'mysql':
             $index = $this->getIndexLocation($indexType);
             if (empty($index)) {
                 break;
             }
             $index = new Search_MySql_Index(TikiDb::get(), $index);
             return $index;
     }
     // Do nothing, provide a fake index.
     $errlib = TikiLib::lib('errorreport');
     if ($tiki_p_admin != 'y') {
         $errlib->report(tr('Contact the site administrator. The index needs rebuilding.'));
     } else {
         $errlib->report('<a title="' . tr("Rebuild Search index") . '" href="tiki-admin.php?page=search&rebuild=now">' . tr("Click here to rebuild index") . '</a>');
     }
     return new Search_Index_Memory();
 }