2009-05-01 15 views
1

複数の言語をインデックスするSolr検索エンジンを設定しています。カスタムのUpdateProcessorFactoryを作成して、入力テキストのどのセクションがどの言語であるかを把握し、ドキュメントのセクションを言語固有のフィールドにコピーします。たとえば、次のテキストを使用します。多言語ソルバー検索インデックス

「Hello World、Bonjour le Monde、Hallo Welt。

en-textフィールドに "Hello World"、fr-textフィールドに "Bonjour le Monde"、de-textフィールドに "Hallo Welt"をコピーします。各フィールドには、適切な言語アナライザがあり、単語をトークン化して枝刈りします。

最後に、ユーザーがすべての言語を検索する検索語を入力するボックスを1つ用意したいと思います。検索用語は翻訳する必要はありませんが、適切に処理する必要があります。これを達成する最良の方法は何ですか?私はまた、検索のパフォーマンスに非常に懸念しています。

答えて

8

最も良い方法はDisMaxRequestHandlerです。適切な言語(schema.xmlで定義されている)の各フィールドを適切に分析します。

クエリが /Solrの/選択?QT = dismax & QF =アン・テキスト%20FR-テキスト%20de-テキスト& Qのように見えるのであれば、=こんにちは%世界 Solrには、正しいことを行います。

(あなたはsolrconfig.xml内のRequestHandlerブロックにsolr.DisMaxRequestHandlerようdismax構成されたと仮定して)

ほとんどの分析が高速です。あなたのパフォーマンスの限界は主にあなたのインデックスのサイズ、総用語数などにあります。それらのwikiのsolr perfomanceガイドに従ってすべてを調整してください。私は現在、60GBのインデックスを実行しており、ハードウェア上で100ms以下の範囲で検索を続けています。