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))); }
/** * @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(); }