3

検索できるようにする必要がある MVC アプリケーションがあります。アプリケーションはモジュール式であるため、モジュールがデータを簡単に登録して検索モジュールにインデックスを付ける必要があります。

現時点では、柔軟性には問題のない迅速な暫定的な解決策しかありませんが、速度は常に問題になります。モジュールは、検索可能にしたいモデル (および関係と列) を登録します。検索時に、検索機能はこれらの関係を使用してデータをクエリし、レーベンシュタインを適用し、ストップ ワードを削除し、文字の置換などを行います。明らかに、データ量が増加するにつれて速度が低下するため、効果的にそのままにしてからselect * from x,y,zマイニングすることは実行できません。データ。

上記の利点は、データを見つけたモデルに直接関係があることです。たとえば、何かが見つかった場合、コードで結果を関連する場所に関連付けたり、たとえばタイトルでキーワードが見つかった場合は画像や説明を表示したりModel_Productできることを知っています。Model_Product::url()Model_Product::find(other data)

上記のもう1つの利点は、すでにデータベース固有であるため、仮想ホストに投入するだけで機能することです。

私はさまざまなオプションについて読みましたが、それらはすべて非常に似ているように見えるため、人々が議論や議論を刺激することなく「正しい」オプションを提案できる可能性は低いですが、記録のために; 次のオプションから、Solr は私が傾いているもののようです。私は確定していないので、誰かが共有したいアドバイスや私が検討できる他のオプションがあれば、それは素晴らしいことです.

さまざまなチュートリアルやガイドを見ると、セットアップと構成が比較的簡単に思えます。上記の場合、モジュールに構成ファイル/検索インデックス モデルのパスを登録させ、サーチャーに検索プログラム x を介してそれらすべてを実行させることができます。これにより、インデックスが作成され、データをクエリする手段が提供されます。罰金。

私が理解していないのは、これらのインデックスが他のコードにどのように関連しているかです。データにインデックスを付けて検索し、Solr などで結果を見つけた場合、見つかったビットに関連する他のすべての情報を取得する方法をどのように知ることができますか?

また、仮想ホストごとに上記のいずれかのインスタンスが必要かどうかを誰かが確認できますか? これは、あまり情報を見つけることができないようです。単一のインスタンスに接続して、関連するデータを伝えることができると思いますか? データベース y への資格情報 x を使用して、単一の DBMS サーバーに接続するのとよく似ています。

確かに、私は現時点で方向性の点で少し行き詰まっており、知っている人からアドバイスを求めることを支持して、すべてについてすべてを読むのではなく、通常のようにこれについて広範囲に読んでいません。特定のルートを取る前に。

編集:この質問は、Solr の方に私をもっと動揺させたようです。ここにも同様のスレッドがあり、Sphinx についてかなりの洞察が得られます。

4

1 に答える 1

0

免責事項: 私は Lucene/Solr と、Lucene に基づいていることを知っている ElasticSearch についてしか話せません。他のものは同じように機能する場合と機能しない場合があります。

データにインデックスを付けて検索し、Solr などで結果を見つけた場合、見つかったビットに関連する他のすべての情報を取得する方法をどのように知ることができますか?

データベース内の特定の行を指すデータベース キーなど、必要な追加データを格納できます。Lucene/Solr は、相対的な情報を見つけるのにも役立ちます。たとえば、DVD レンタル ショップを経営していて、ユーザーが映画名のつづりを間違えた場合、Lucene はこれを見つけ出し、(DB とは異なり) 最も近い代替情報をリストします。インデックス作成またはクエリ中に特定のフィールドをブーストすることで、ヒントを提供することもできます。地理空間検索などには特別な拡張機能があります。もちろん、必要に応じて独自の拡張機能を提供することもできます。

また、仮想ホストごとに上記のいずれかのインスタンスが必要かどうかを誰かが確認できますか?

Lucene は低レベルのライブラリであり、実行するすべての JVM に存在する必要があります。Solr (Lucene の上に構築) は HTTP サーバーです。必要な数のクライアントから呼び出すことができます。その他のスケーリング オプションについては、こちらで説明しています。

于 2013-05-20T12:03:49.107 に答える