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