簡體   English   中英

Lucene OR使用布爾查詢進行搜索

[英]Lucene OR search using Boolean query

我有一個包含多個字段的索引,其中一個是字符串字段,我在其中存儲產品的類別名稱...例如“Electronics”,“Home”,“Garden”等

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

這適用於一類搜索,但我不知道如何搜索“電子或家庭”這將是兩個類別。

你可以這樣寫:

BooleanQuery categoryQuery = new BooleanQuery();
TermQuery catQuery1 = new TermQuery(new Term("category_name", "Electronics"));
TermQuery catQuery2 = new TermQuery(new Term("category_name", "Home"));
categoryQuery.add(new BooleanClause(catQuery1, BooleanClause.Occur.SHOULD));
categoryQuery.add(new BooleanClause(catQuery2, BooleanClause.Occur.SHOULD));
bq.add(new BooleanClause(categoryQuery, BooleanClause.Occur.MUST));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM