1

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

「ハローワールド、ボンジュール・ル・モンド、ハロー・ウェルト」

「Hello World」を en-text フィールドに、「Bonjour le Monde」を fr-text フィールドに、「Hallo Welt」を de-text フィールドにコピーします。各フィールドには、単語をトークン化してステミングするための適切な言語アナライザーがあります。

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

4

1 に答える 1

8

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

したがって、クエリが/ solr / select?qt = dismax&qf = en-text%20fr-text%20de-text&q = hello%worldのようになっている場合、Solrは正しいことを行います。

(solrconfig.xmlのrequestHandlerブロックでdismaxをsolr.DisMaxRequestHandlerとして構成したと仮定します)

ほとんどの分析は高速です。パフォーマンスの限界は、主にインデックスサイズ、合計用語数などにあります。必ず、Wikiのsolrパフォーマンスガイドに従ってすべてを調整してください。私は現在60GBのインデックスを実行しており、それほど派手ではないハードウェアで100ミリ秒未満の範囲で検索を続けています。

于 2009-05-02T01:26:20.177 に答える