1

私のアプリケーションでは取引があり、各取引には、性別、年齢、都市などのいくつかのフィールドを含む可能性のあるターゲット ユーザー グループがあります。性別の部分については、取引のターゲットはMALE FEMALEまたはBOTHです。男性用または男性用の取引を見つけたかったのですが、次のクエリを作成しましたが、うまくいきません...

TermQuery maleQuery = new TermQuery(new Term("gender","MALE"));
TermQuery bothQuery = new TermQuery(new Term("gender","BOTH"));

BooleanQuery query = new BooleanQuery();
query.add(maleQuery,BooleanClause.Occur.SHOULD);
query.add(bothQuery,BooleanClause.Occur.SHOULD);

私が間違いを犯している場合は提案してください。MALEなんとなく、お得情報ばかり吐き出しているような・・・BOTH

バージョン4.2.1Standard Analyzerアナライザーを使用しています。

4

2 に答える 2

2

あなたのクエリは完全に有効なようです。間違っている可能性のある何か他のものを探します (たとえば、インデックス作成時に偶然に用語を使用LowerCaseFilterしていませんか?)。MALE/BOTH/FEMALE

さまざまなクエリを単一の に結合する方法については、この記事をお読みくださいBooleanQuery

于 2013-04-24T08:35:12.867 に答える