我使用两种不同的方法在索引中搜索,一种是工作,一种不是(但应该是阅读文档)。我想知道我的错误是什么。
这是我的第一种方法,它可以正常工作:
$query = '+language:EN +country:US';
$hits = $index->find($query);
我尝试使用Zend_Search_Lucene_Index_Term
:
$query = new Zend_Search_Lucene_Search_Query_MultiTerm();
$query->addTerm(new Zend_Search_Lucene_Index_Term('EN', 'language'), true);
$query->addTerm(new Zend_Search_Lucene_Index_Term('US', 'country'), true);
$hits = $index->find($query);
这不会产生结果。删除true
选项会将搜索转换为OR搜索(country = US OR language = EN)。
我基于http://framework.zend.com/manual/1.12/de/zend.search.lucene.query-api.html
上的文档创建了第二种方法答案 0 :(得分:0)
我通过在搜索中不使用任何大写字符找到了解决方案。
搜索小写字符,即使数据字段为大写,也可以解决它。
有效的示例代码:
$query = new Zend_Search_Lucene_Search_Query_MultiTerm();
$query->addTerm(new Zend_Search_Lucene_Index_Term('en', 'language'), true);
$query->addTerm(new Zend_Search_Lucene_Index_Term('us', 'country'), true);
$hits = $index->find($query);
数据字段的值为“EN”和“US”,并且已经被索引,文档输出确认了这一点,但由于某种原因,搜索需要小写输入。