Php Zend_Lucene:如何组合多个术语?

Php Zend_Lucene:如何组合多个术语?,php,zend-framework,lucene,zend-search-lucene,Php,Zend Framework,Lucene,Zend Search Lucene,我正在使用两种不同的方法在索引中搜索,一种是有效的,另一种是无效的,但应该是通过阅读文档来实现的。我想知道我的错误是什么 以下是我的第一种方法,效果很好: $query = '+language:EN +country:US'; $hits = $index->find($query); 我试着用Zend_Search_Lucene_Index_术语做同样的事情: 这不会产生结果。删除true选项会将搜索转换为或搜索国家=美国或语言=英语 我基于在中找到的文档创建了第二种方法,通过在搜索

我正在使用两种不同的方法在索引中搜索,一种是有效的,另一种是无效的,但应该是通过阅读文档来实现的。我想知道我的错误是什么

以下是我的第一种方法,效果很好:

$query = '+language:EN +country:US';
$hits = $index->find($query);
我试着用Zend_Search_Lucene_Index_术语做同样的事情:

这不会产生结果。删除true选项会将搜索转换为或搜索国家=美国或语言=英语


我基于在

中找到的文档创建了第二种方法,通过在搜索中不使用任何大写字符找到了解决方案

搜索小写字符,即使数据字段是大写的,也可以解决它

有效的示例代码:

$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,并已按此编制索引,文档输出证实了这一点,但由于某些原因,搜索需要小写输入。

是否检查了是否是因为区分大小写?是的,我刚刚再次检查了它。在所有方面都是一样的:
$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);