0

プロジェクトの次の段階として、次のNoSQLデータベースを検討しています。

Elasticsearch は主に高度な検索シナリオに対応するものとして位置付けられ、RavenDB はドキュメント指向のデータベースとして位置付けられます。

主に、ドキュメントはビデオに関するものになります。それぞれに自然なIDがあります。それがドキュメントのキーになります。

その周りに、必ずしもスカラーまたはフラットではないフィールドに他のコンテンツを追加します。情報は、さまざまな構造を持つさまざまなソースから取得されるためです。

たとえば、ビデオ プロバイダーの Atom フィードからのコンテンツ、ビデオが埋め込まれたブログ投稿、データ ウェアハウス プロジェクトからのその他のデータがあります。

すべてのアイテムに一定の構造はありません (実際には、それぞれが非常にドメイン固有です)。それらを関連付ける唯一のものは、上記のビデオの自然キーです。

とはいえ、上記のソリューションのいずれかでこの情報を取得したら、それを使用して多くのことを行いたいと思います。

  • ビデオに関する分類を行うために、ランダム フォレストに変数を入力するのに役立つようにそれを選別します。
  • Web ベースのフロント エンド (知っておく必要がある場合は ASP.NET MVC) を介して、ビデオの一般的な検索 (ランダム フォレストの結果に基づくのではなく、一般的なフリーテキスト) を提供します。

いくつかの要件があります:

  • 私はおそらく、ASP.NET 共有 Web ホスティング環境にいるでしょう。つまり、マシンは 1 台しかなく、サービスをセットアップするためのアクセス権はありません。埋め込み可能なものは非常に役立ちます。

  • ASP.NET 環境は IIS でホストされるため、埋め込み可能な側面はアプリ ドメインのリサイクルに耐えなければなりません。

  • サイトでの検索に役立つ、簡単にファセットできる統計分析の結果に基づいて、新しいインデックスを作成したいと思います。

  • オートコンプリート機能のサポート (これが「すぐに使える」要求ではないことはわかっていますが、その点に到達できることが重要です)。

  • 豊富な類義語のサポート (私がコンテンツのインデックスを作成しているタイプのビデオには、多数の類義語があります)

Trufflerなどのサービスにもオープンですが、コストについては懸念があります (Truffler の場合、リクエストは西海岸の Web ホストから送信されるため、データ センター間の遅延が少し心配です。または東海岸のバックエンド プロセスから)。

さらに、 1 つのソリューションですべての要件を満たす必要があるとは思いません。私は、ある目的のために 1 つを使用し、別の目的のために別のものを使用することに問題はありません。確かに、移行は最悪ですが、これら 2 つのドキュメント ストア間の移行は少し簡単です (そして、必ずしも同じドキュメント構造を使用するとは思いません)。

4

1 に答える 1

2

私は Elastic Search に精通しているため、偏見を持っている可能性があります。RavenDB はクールに見え、おそらくあなたのニーズのいくつかにうまく適合すると思います。

これが、私が Elastic Search に投票する理由です。

  1. 一般的な検索、ファセット同義語のサポートは、Elastic Search でより簡単かつ強力になると思います。Elastic Search は、 Luceneの非常に多くの優れた検索機能(ステミングフォネティックなど)を活用しています。

  2. Elastic Search には、より優れたリアルタイム検索機能があります。これがあなたの強いニーズかどうかは正確にはわかりませんでしたが、リアルタイム検索を改善しない理由はありません。Shayは、今年の Berlin Buzzwords でこれを非常によく説明しています。

  3. Elastic Search を使用すると、1 台のサーバーから始めて、非常に簡単に多数のサーバーに拡張できます。最初からクラウドを念頭に置いて構築されました。

Elastic Search .Net APIがあります。あなたが何を決定したのか、そしてそれがどのように機能したかを聞きたいです。

于 2011-12-09T03:50:43.590 に答える