【发布时间】:2014-04-04 03:10:52
【问题描述】:
如果整个查询没有返回结果,我需要确定 Lucene BooleanQuery 的哪一部分失败。
我正在使用由 4 个NumericRangeQueries 和一个PhraseQuery 组成的BooleanQuery。每个都使用Occur.MUST 添加到查询中。
如果我没有得到任何查询结果,有没有办法判断查询的哪一部分没有匹配到任何内容?我是否需要单独运行查询并比较结果以获得失败的查询?
编辑 - 添加了PhraseQuery 代码。
if( row.getPropertykey_tx() != null && !row.getPropertykey_tx().trim().isEmpty()){
PhraseQuery pQuery = new PhraseQuery();
String[] words = row.getPropertykey_tx().trim().split(" ");
for( String word : words ){
pQuery.add(new Term(TitleRecordColumns.SA_SITE_ADDR.toString(), word));
}
pQuery.setSlop(2);
topBQuery.add(pQuery, BooleanClause.Occur.MUST);
}
【问题讨论】: