0

db 全文検索を lucene に変更することに興味があります。私は休止状態を使用しているので、休止状態検索を使用するのが賢明だと思います。でも問題があります。

私たちのレコードには、さまざまな言語の情報とタイトルのリストがあり、単一の言語とすべての言語に基づいて検索できる必要があります。

単純な lucene で実行できる可能性がありますが、現在のトランザクションでどの程度うまく機能するかはわかりません。したがって、休止状態の検索と休止状態を使用してインデックスを処理する方がはるかに優れています。

私が説明した方法で検索するために、インデックスにそのようなフィールドを作成することは可能ですか?

class Record{
    List<Info> infos;
}

class Info{
    String title;
    String infoText;
    String langCode;
}

こうしようかな。次のように Record に getter を作成します。

public String getEnglishTitle(){...}

public String getFullInfos(){...}

そして、これらのゲッターにインデックス注釈を付けて、必要なフィールドをインデックスに入れますか?

4

1 に答える 1

1

infos プロパティのカスタム FieldBridge を作成します。次に、インデックスに追加するフィールドを完全に制御できます。たとえば、テキストを使用できます。フィールド名として。これにより、検索する言語を動的に決定できるようになります。アナライザーについても考える必要があることを忘れないでください。フィールドごとのカスタム アナライザーが機能します。

于 2011-04-02T06:11:44.040 に答える