1

次のような形式のMongoDBに多言語データがあります

"name":{
  "en" :  "dog",
  "fr" : "chien"
},"description" :{ 
} 

テキスト検索について懸念があります。つまり、ユーザーは"dog"or "chien"(またはその部分文字列) のようなテキスト検索で同じオブジェクトを見つけることができるはずです。私はelasticsearch、solr、sphinxsearchなどの全文検索エンジンをいくつか検討していますが、一見elasticsearchは有望に見えます。上記は悪い構造であり、重要な他のエンジンの明らかな利点はありますか? そして、そのような検索をelasticsearchでどのように実装しますか?

4

1 に答える 1

1

Solr と ElasticSearch はどちらも Apache Lucene の上に構築されており、必要な機能を提供します。私は Elastic Search を使用したことがないため、Solr での経験に基づいて概要を説明しますが、同じことが Elastic Search にもシームレスに移行できると確信しています。

  1. mongodb データを Solr にインポートしてインデックス化する必要があります。これは、Solr を実行し、その rest api を使用することで簡単に実行できます。10gen mongo-connector を使用することもできます: https://github.com/10gen-labs/mongo-connectorは、mongodb レコードを Solr にインポートします。選択した言語で独自のスクリプトを作成するなど、mongodb データを Solr にインポートする方法は他にもたくさんあります。

  2. インポートするデータのスキーマ定義を定義する必要があります。検索ケースでは、ほとんどの場合、Solr ファクトリ (フィルター/トークナイザーなど) がテキスト データに適用された "テキスト" を使用します。

3.スキーマをどのように定義するかは、選択するユーザー フローによって異なります。あなたのサイトは言語中立で、「fem」を検索すると、「fem」で始まるすべての言語のすべての結果が表示されますか。または、ユーザーが最初に言語を選択できるようにします。たとえば、"French" と入力してから、'fr' フィールドでのみ用語を検索します。

于 2013-10-22T19:13:45.460 に答える