複合フィールドをLuceneクエリに適用する関数の実装に問題があります。代わりにLuceneクエリを入力するの複合フィールドをluceneクエリに展開する機能
:
タイトル:「右ウェイ」件名:「右の方法」
私は、ユーザーが入力できるようにしたい:
すべて: "右ウェイ "
ここで、すべては実フィールドのタイトルと件名で構成される複合フィールドです。この関数は、合成フィールドの構成要素を展開した有効なルーネンクエリを生成する必要があります。
文字列のクエリ= applyCompositeFields(文字列のクエリ文字列compositeField、String []型のサブフィールド){
} 供給クエリはLuceneクエリ構文に従って任意のクエリとすることができる(参照:http://lucene.apache.org/core/old_versioned_docs/versions/3_0_0/queryparsersyntax.html#Range%20Searches)を
について例:
すべて:
:[20030101 TO 20020101]はに拡大すべき10
タイトル:[20020101 TO 20030101]件名:[20020101 TO 20030101]
複雑なクエリの入力を壊さずにこれをうまくやる方法はありますか?
私はLuceneクエリオブジェクトモデルを使用しようとしましたが、クエリ要素にフィールド名を設定することはできません。無用です。
どのようにですか?私が言うことからではありません。 – user1387012
クエリには、非複合フィールドも含まれます。例: all:[20020101 TO 20030101]件名:lucene – user1387012
このシナリオでは、MultiFieldQueryParserは動作しません。私たちはいくつかの複合的なフィールドを持っていますが、他のフィールドは複雑ではありません。 "hello" body:test AND all:[1222 to 2333]というように。 – user1387012