4

DBには、列挙型、フリーテキスト、参照フィールドなどがあります。

各列挙型には独自の翻訳があり、フリーテキストは任意の言語にすることができます。効率的な大規模なフリーテキスト検索と列挙値ベースの検索を実行したいと考えています。

Solrのような優れたソリューションを知っていますが、それは、システム内のすべての言語のすべてのテキストを使用して、非正規化されたレコード全体にインデックスを付ける必要があることを意味します。これは少し過剰に思えます。

多言語の正規化されたデータを検索するための推奨されるアプローチは何ですか?誰かが前にこれに取り組んでいますか?

4

1 に答える 1

0

ETL。抽出、変換、読み込み。言い換えれば、既存のデータベースからデータを取得し、それを変換し (これは単なる非正規化ではありません)、SOLR にロードします。リレーショナル オーバーヘッドがないため、SOLR データベースは既存のデータベースよりもはるかに小さくなります。また、SOLR 検索は、既存のデータベース サーバーのほとんどの負荷を取り除きます。

SOLR を構成して使用する方法をよく見て、SOLR コアについて学んでください。SOLR でさまざまなステミング アルゴリズムをより効果的に使用できるため、一部の言語を個別のコアに配置することをお勧めします。しかし、多言語データであっても、バイグラム (中国語の分析で使用されるものなど) を使用できます。

複数のコアを使用すると、単一言語インデックスまたは全言語インデックスのいずれかを試すことができるため、検索が少し複雑になります。しかし、言語データをグループ化し、言語固有のストップワード、保護された単語、ステミング、および言語分析ツールを適用する方がはるかに効果的です。

通常、インデックスにいくつかの重要なデータを含めて、SOLR 検索でレコードを見つけたときに、ソース データベースを直接参照できるようにします。また、正規化されたデータと正規化されていないデータを一緒に持つこともできます。たとえば、列挙型は英語の正規化されたフィールドと、フリーテキストと同じ言語の正規化されていないフィールドに記録できます。2 つの異なる分析およびフィルタリング処理を適用するために、フィールドを複製できます。

SOLR がどのように機能し、どのように構成するのが最善かを学ぶために、データのサブセットでこれを試してみる価値があります。

于 2011-08-04T04:50:34.997 に答える