我在Lucene的文档(solr,真的)有几个字段,我们称之为textField1,numField1,numField2。
我的应用程序将包含word1 textField需要查询的搜索字词列表,numField1的数字列表list1和numField2的另一个数字list2列表。
我想创建一个执行此操作的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中的不同枚举,但我无法从文档中收集它们如何相互映射。
答案 0 :(得分:2)
我建议您获取Luke并使用它,直到您确定您的查询正确并带回您想要的内容。
完成后,您可以查看parsed query(提示:点击解释结构),它将显示BooleanQueries的堆叠方式。
请确保使用的是与用于索引文档相同的分析器。
答案 1 :(得分:0)
你应该使用
textfieldl1:words1 AND(list1:numfield1 OR list1:numfield2)