如何使用两个或多个“变量”构建lucene查询;在;条款

如何使用两个或多个“变量”构建lucene查询;在;条款,lucene,Lucene,我在Lucene(solr,真的)中的文档有几个字段,让我们称它们为textField1、numfied1、numfied2 我的应用程序将有一个需要查询的搜索词列表1 textField,一个numField1的数字列表,以及另一个numField2的数字列表 我想创建一个Lucene查询,它可以执行以下操作: textField matches one or more words in words1 AND either ( numfield1 is one of the value

我在Lucene(solr,真的)中的文档有几个字段,让我们称它们为textField1、numfied1、numfied2

我的应用程序将有一个需要查询的搜索词列表1 textField,一个numField1的数字列表,以及另一个numField2的数字列表

我想创建一个Lucene查询,它可以执行以下操作:

textField matches one or more words in words1
AND either (
    numfield1 is one of the values in list1 OR
    numfield2 is one of the values in list2)
我正在尝试使用BooleanQuery来构建查询,但我不确定如何实现。看起来AND和OR布尔运算映射到BooleanClause.Occurs中的不同枚举,但我无法从文档中收集它们之间的映射方式。

我建议您获取并使用它,直到您确定查询正确并返回所需内容

完成后,您可以查看(提示:单击Explain structure),它将向您显示布尔查询是如何堆叠的

只需确保您使用的分析仪与用于索引文档的分析仪相同。

您应该使用

textfield1:words1和(列表1:numfield1或列表1:numfield2)