複合フィールドを Lucene クエリに適用する関数の実装に問題があります。
lucene クエリを入力する代わりに:
title:「正しい道」 subject:「正しい道」
ユーザーが次のように入力できるようにしたい:
all:「正しい道」
all は、実際のフィールド title と subject で構成される複合フィールドです。この関数は、複合フィールドの構成要素が展開された有効な lucene クエリを生成する必要があります。
文字列クエリ = applyCompositeFields(文字列クエリ、文字列複合フィールド、文字列[] サブフィールド) {
提供されたクエリは、lucene クエリ構文に従った任意のクエリです ( http://lucene.apache.org/core/old_versioned_docs/versions/3_0_0/queryparsersyntax.html#Range%20Searchesを参照) 。
例えば:
all:[20020101 ~ 20030101]
次のように拡張する必要があります。
件名:[20020101 ~ 20030101] 件名:[20020101 ~ 20030101]
複雑なクエリ入力を壊さずにこれをきちんと行う方法についてのアイデアはありますか?
Lucene クエリ オブジェクト モデルを使用してみましたが、クエリ要素にフィールド名を設定できないため、役に立ちません。