Php 如何使用zend_search_lucene构建类似google的搜索功能?
我正在使用zend_search_lucene在文档中搜索关键字。 在其中一个文档中,它有一个短语Php 如何使用zend_search_lucene构建类似google的搜索功能?,php,lucene,full-text-search,search-engine,zend-search-lucene,Php,Lucene,Full Text Search,Search Engine,Zend Search Lucene,我正在使用zend_search_lucene在文档中搜索关键字。 在其中一个文档中,它有一个短语,这给了我一堂宝贵的时间管理课,因为我白天还要参加讲座和辅导。我喜欢改进我的电话方式,并学会处理对我的捐款请求的不同反应。 现在,如果搜索“关于时间管理的宝贵课程”,结果一无所获。我使用下面的代码来搜索它 Zend_Search_Lucene_Analysis_Analyzer::setDefault(new Zend_Search_Lucene_Analysis_Analyzer_Common_T
,这给了我一堂宝贵的时间管理课,因为我白天还要参加讲座和辅导。我喜欢改进我的电话方式,并学会处理对我的捐款请求的不同反应。
现在,如果搜索“关于时间管理的宝贵课程”,结果一无所获。我使用下面的代码来搜索它
Zend_Search_Lucene_Analysis_Analyzer::setDefault(new Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive());
$index = new Zend_Search_Lucene('/home/project/mgh/data/search_file/lucene.customer.index');
Zend_Search_Lucene::getDefaultSearchField('contents');
$results = $index->find('contents:"valuable lesson on cost management" ');
$this->count=count($results);
在上面的示例中,唯一的不匹配是,在“in”的位置有“on”,但剩余的单词正在匹配。
如果匹配的单词很少(即使没有几个单词不匹配),如何获得结果计数
谢谢你的建议
参考资料:问题不在于zend_search_lucene,而在于lucene如何为数据编制索引。我建议您阅读Solr文档以了解其工作原理。此外,如果您发布schema.xml信息(您可以在其中定义哪些信息应该被索引以及以何种方式进行索引),也会有所帮助。这里的关键可能是stopwords。如果您将“in”和“on”定义为stopwords(Lucene会忽略这些词,因为它们太常见),那么您的查询“时间管理的宝贵经验”将与文档文本的“时间管理的宝贵经验”部分相匹配。您好,我正在将所有类型的文档转换为文本,并将其提供给Lucene索引。数据不是来自数据库。所以这里没有使用YML文件。你能建议我如何做到这一点吗?看看这篇文章,它可能会帮助你感谢你的反馈。在上述情况下,这可能是因为停止词。但我仍然想知道如何得到结果计数,即使很少的词得到匹配,而不考虑停止词。。。。