1

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

lucene.Find((someField == "bar" || someField == "baz") && anotherField == "foo");

或者用英语,“查找someField为 'bar' 或 'baz' 且anotherField为 'foo' 的所有文档”。

如何使用 Lucene 进行这样的查询?

4

1 回答 1

5

在 Lucene 查询语法中:

+(someField:bar someField:baz) +anotherField:foo

“+”表示该术语是必需的,就像 Google 搜索语法一样。括号将术语组合成一个术语。如果没有“+”(或“-”),则术语是可选的;至少有一个词必须匹配,匹配的词越多,得分越高。

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

于 2009-03-19T16:40:04.060 回答