複数のフィールドを持つインデックスがあります。そのうちの1つは、 "Electronics"、 "Home"、 "Garden"などの製品のカテゴリ名を格納する文字列フィールドです。などLucene ORブール検索を使用したOR検索
new StringField("category_name", categoryName, Field.Store.YES)); //categoryName is a value such as "Electronics"
私は名前、価格、およびカテゴリ別に製品を見つけるために、ブールクエリを行っておりますが、私は同時に2つのカテゴリを照会できるように、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
これは1つのカテゴリの検索のために正常に動作しますが、私は二つのカテゴリーになり、「電子や家庭を」検索する方法がわからないです。
Ibearの答えが正しいですが、あなたが読みたいと思うかもしれません@ http://searchhub.org/dev/2011/12/28/why-not-and-or Luceneでブール論理がどのように機能するかを理解するために、 – mindas
@mindas、リンクのおかげで、実際には多くの助けになります。答えとして、それは本当に便利だと私はアップ投票することを願っています。 – SoluableNonagon