2011-11-14 6 views
0

例として電子メールをドキュメントとして使用できるようにします。あなたはあなたの主体、身体、その出身者を持っていて、(Gmailのように)タグ付けすることもできます。ルーネン検索に他のフィールドを含めるにはどうすればいいですか?

私がQueryParserを理解してから、私はそれに1つのフィールドとパーサータイプを与えます。ユーザーがテキストを入力すると、ユーザーは自分が設定したものだけを検索します。私はそれが被写体や身体の分野で私はfieldName: text to searchを書いた場合に見えることに気付くしかし、どのように私は "面白いので質問ユニコーン"のような定期的なクエリを行うには、 ?私はそれが簡単だと分かっていたので、私はALLと呼ばれるフィールドを作って、他のフィールドをすべて組み合わせましたが、どうすれば適切な方法でそれをやり遂げることができるか知りたいと思います。特に私の次のアプリはテキスト検索に依存しているので

答えて

2

MultiFieldQueryParserを使用してください。次のコンストラクタを使用して、検索するフィールドのリストを指定できます。

MultiFieldQueryParser(Version matchVersion, String[] fields, Analyzer analyzer) 

これは、異なるフィールドで複数のクエリを作成したかのようにクエリを生成します。これは部分的にあなたの問題に対処します。これは、フィールド1で一致する1つの用語とフィールド2で一致する1つの用語とは一致しません。このために、あなたが正しく指摘したように、すべてのフィールドを1つのフィールドにまとめ、そのフィールドで検索する必要があります。それにもかかわらず、クエリの用語がフィールドの境界を超えない場合は、MultiFieldQueryParserが便利です。

関連する問題