Lucene查询数组和“IN”,“ALL IN”,“ANY IN”操作

时间:2018-05-22 17:28:06

标签: lucene

我需要使用Lucene查询语言实现以下谓词:

{param} IN optionIds

其中{param}是我的外部参数,optionIds是数组(或集合)。

例如,我的文档包含以下optionIds

"optionIds": [
    72,
    44,
    11,
    9,
    10
  ]

以下Lucene谓词optionIds:72正确返回此文档。

但是如何根据以下值返回此文档:72,11,9

以下谓词optionIds:72, 11, 9不起作用,Lucene查询返回空结果。

请说明如何在Lucene查询语言中使用数组(集合)正确使用(模拟)IN操作。另外,请说明如何使用ALL IN/ANY IN

1 个答案:

答案 0 :(得分:7)

要匹配文档中列出的任何查询字词:

optionIds:(72 11 9)

匹配所有查询字词:

optionIds:(+72 +11 +9)