这是我想要做的,使用伪代码:
lucene.Find((someField == "bar" || someField == "baz") && anotherField == "foo");
或者用英语,“找到 someField 是'bar'或'baz'的所有文件,其中 anotherField 是'foo'”。
如何使用Lucene进行这样的查询?
答案 0 :(得分:5)
在Lucene查询语法中:
+(someField:bar someField:baz) +anotherField:foo
“+”表示该术语是必需的,就像Google搜索语法一样。括号将术语组成单个术语。没有“+”(或“ - ”),术语是可选的;至少有一个术语必须匹配,匹配的术语越多,得分越高。
将此字符串传递给QueryParser
以创建Query
对象。然后,可以根据您的需要将查询传递给多种搜索方法之一。