Lucene Search查询标记化索引中的多个值

时间:2014-08-06 07:07:38

标签: lucene

我对Lucene索引很新。我有一个表字段ID,NAME和NATIONALITY都使用NGRAM分析器(2,2)索引。现在我需要从表中查询ID列表(比如12345和98765)。我怎么能这样做?

我尝试了这样的布尔查询:

BooleanQuery.add("ID:"12 23 34 45" ,Occur.SHOULD);
BooleanQuery.add("ID:"98 87 76 65" ,Occur.SHOULD);

由于索引是使用Ngram Analyzer完成的,其maxgram width为2.它将列表和令牌设置为2并搜索它;结果 - 我得到一个ID值列表,其中包含很多值。

我试过Occur.MUST。但是返回了0个结果。

1 个答案:

答案 0 :(得分:0)

在查询语法中,我认为你想要:

( +12 +23 +34 +45 ) ( +98 +87 +76 +65 )

将返回所有(12,23,34,45)或全部(98,87,76,65)的命中。基本上,来自ID本身的ngrams必须是查询,包含在一个SHOULD查询中(这个包装是秘密的酱油)。

相关问题