我有一个索引有多个字段,其中之一是一个字符串字段,我在其中存储产品的类别名称......例如“Electronics”,“Home”,“Garden”等Lucene OR搜索使用布尔查询
new StringField("category_name", categoryName, Field.Store.YES)); //categoryName is a value such as "Electronics"
我执行布尔查询来查找名称,价格和类别的产品,但我不知道该怎么办OR搜索,这样我可以查询两类在同一时间。
我当前的查询看起来是这样的:
String cat = "Electronics"
TermQuery catQuery = new TermQuery(new Term("category_name", cat));
bq.add(new BooleanClause(catQuery, BooleanClause.Occur.MUST)); // where "bq" is the boolean query I am adding to, I tried .SHOULD but that didn't help either
能正常工作的一个类别搜索,但我不知道如何搜索“电子或家庭”,这将是两大类。
@ Ibear的答案是正确的,但你可能想读http://searchhub.org/dev/2011/12/28/why-not-and-or为了更好地理解布尔逻辑如何在Lucene中工作, – mindas
@mindas,感谢您的链接,这实际上也帮助了很多。希望我能够将它作为答案来投票,因为它非常有用。 – SoluableNonagon