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

ale*_*oid 5 lucene

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

{param} IN optionIds
Run Code Online (Sandbox Code Playgroud)

{param}我的外部参数在哪里,optionIds是一个数组(或集合).

例如,我有以下文件optionIds:

"optionIds": [
    72,
    44,
    11,
    9,
    10
  ]
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

fem*_*gon 9

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

optionIds:(72 11 9)
Run Code Online (Sandbox Code Playgroud)

要匹配所有查询字词:

optionIds:(+72 +11 +9)
Run Code Online (Sandbox Code Playgroud)

  • @DanielCheung - 当然可以:https://javadoc.io/static/org.apache.lucene/lucene-queryparser/8.8.1/org/apache/lucene/queryparser/classic/package-summary.html (2认同)