带复杂查询的Lucene搜索

带复杂查询的Lucene搜索,lucene,lucene.net,Lucene,Lucene.net,下面是我想做的,使用伪代码: lucene.Find((someField == "bar" || someField == "baz") && anotherField == "foo"); 或者在英语中,“查找某些字段为'bar'或'baz',另一个字段为'foo'的所有文档” 如何使用Lucene执行类似的查询?在Lucene查询语法中: +(someField:bar someField:baz) +anotherField:foo “+”表示该术语是必需的,就像谷歌

下面是我想做的,使用伪代码:

lucene.Find((someField == "bar" || someField == "baz") && anotherField == "foo");
或者在英语中,“查找某些字段为'bar'或'baz',另一个字段为'foo'的所有文档”


如何使用Lucene执行类似的查询?

在Lucene查询语法中:

+(someField:bar someField:baz) +anotherField:foo
“+”表示该术语是必需的,就像谷歌搜索语法一样。括号将术语分组,使其作用类似于单个术语。如果没有“+”(或“-”),则术语是可选的;至少有一个术语必须匹配,匹配的术语越多,分数越高


将此字符串传递给
QueryParser
以创建
Query
对象。然后,可以根据需要将查询传递到多个搜索方法之一。

在Lucene查询语法中:

+(someField:bar someField:baz) +anotherField:foo
“+”表示该术语是必需的,就像谷歌搜索语法一样。括号将术语分组,使其作用类似于单个术语。如果没有“+”(或“-”),则术语是可选的;至少有一个术语必须匹配,匹配的术语越多,分数越高


将此字符串传递给
QueryParser
以创建
Query
对象。然后,根据您的需要,可以将查询传递到多种搜索方法之一。

谢谢!我试试看。同时,我将把这个标记为正确答案。我会让你知道它是否如预期的那样工作。谢谢!我试试看。同时,我将把这个标记为正确答案。我会让你知道它是否按预期工作。