Lucene在标记化索引中搜索多个值

Lucene在标记化索引中搜索多个值,lucene,Lucene,我对Lucene很陌生。我有一个带有字段ID、名称和国籍的表,所有字段都使用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分析器完成的,最大宽度为2。它获取列表并将其标记为2的集合,然后

我对Lucene很陌生。我有一个带有字段ID、名称和国籍的表,所有字段都使用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分析器完成的,最大宽度为2。它获取列表并将其标记为2的集合,然后对其进行搜索;结果——我得到了一个包含这么多值的ID列表


我试过了,一定要。但是返回了0个结果。

在查询语法中,我认为您需要:

( +12 +23 +34 +45 ) ( +98 +87 +76 +65 )
它将返回全部命中(12、23、34、45)或全部命中(98、87、76、65)。基本上,ID本身的Ngram是必须查询,包装在一个应该查询中(这个包装就是秘方)