2012-02-16 5 views
3

私が持っている:として提供前処理されたOffice文書(Word、Excel、PDFファイル、電子メール、パワーポイントなど)の弾性検索+のCouchDBのORスフィンクスの+ mysqlの....

セット「ロードファイル」(約セットあたり2-4テラバイト。)

「ロード・ファイルは、」で構成されています:オフィス文書から印刷

  1. シングルPGのTIFFファイル(.. ドキュメントを持っているでしょう15ページの単語15 tiffs)
  2. offiから抽出されたメタデータ全文を含む区切られた.datファイルで提示された文書。 .TIFF &の.dat関連付け
  3. .logファイル
  4. オリジナルオフィス文書推奨ブラウザVIA

USERS(一緒に入れ& .logファイルの.datは、データセットのサイズの7〜10%を占めます)

  1. が.datの
  2. で見つかった&メタデータはTIFF画像と時折ORIを見るフルテキストでキーワード検索のさまざまな操作を行います:WILL ginalオフィスドキュメント
  3. 分類各文書一部のユーザー定義のラベルで、時にはBETWEEN決定しようとノート
  4. 、さまざまな方法でデータが...例えば、日付送らソート、作成者、件名など

を作ります: 弾性検索+ couchdb OR sphinx + mysql

私は、検索は主なエンジニアリング上の問題であると言われているので、それを他のものを決定するための基礎として使用することに決めました。

今後の成長を考えて、私はすべてのものを「雲」にすると考えました。私はcouchdb(ESとの密接な広告の統合を超えて特別な理由はありません)とペアでよく読んだ弾力的な検索にキーイングしました... symfony2 + doctrine(これと結婚しませんが、

しかし、誰かがデータが非常にうまく構成されているように見えるので、sphinx/mysqlは雲のためのノードによって分割された「すぐに使える」スフィンクスとのより良いパスです。

CONTEXT:

私の主な目標は、TIFF画像のアップ役立つ検索&のスピードとパフォーマンスです。スケーラビリティは、ユーザーの数が数万人(おそらく100万人)に増加する可能性があるが、「Webスケール」(数千万人)ではなく、第2の懸案事項です。ただし、これらのユーザーの一部は、アプリケーションを1日に8時間使用します。

質問:あなたは弾性検索+ NoSQLのは、それは私が実際に有意なパフォーマンス上の利点に必要なものよりも設定に時間/複雑さ/リソースが必要になるという意味でやり過ぎである。この特定のアプリのために

感じていますか?または、sphinx mysqlは最終的に大きなデータセット/ユーザーを持つボトルネックになりますか?

答えて

1

コメント以上の回答があります。(長すぎましたが)

私は本当にcouchdbにコメントできませんが、私はMySQL/Sphinxに関する私の考えを共有すると思いました。

まず、複雑な基準であっても、検索は慌てて高速です。 インデックスのいくつかの側面をRAMに格納する必要があります。巨大なデータセットをお持ちの場合は、このパフォーマンスを得るためにスフィンクスに十分なリソースを割り当てる必要があります。

スフィンクスの潜在的な欠点は、私の経験では、スフィンクスボックスがあなたにはかなり簡単な要件があるときに起こるということです。 インデックス付けする前にドキュメントを前処理したい場合(つまり、regexpをドキュメント上で実行し、フォーラムbbcodesを置き換えるなど)、もっと複雑になります(私の場合は、Sphinxをmysqlに直接話すのではなくXMLPIPE2を使用してインデックスを作成する必要があります)。

スフィンクスのもう一つの潜在的な問題は、リアルタイムインデックスが存在しているにもかかわらず、成熟した機能ではなく、いくつかの制限があることです。 したがって、データセットを定期的に再インデックスする必要があるかもしれません(あるいは、新しいビットを索引し、主索引にマージします - メイン+デルタと呼ばれます)。これは必ずしも問題ではありませんが、もう一度動く部分です。

「私の主な目標は検索のスピードとパフォーマンスです」 - スフィンクスはここであなたを失望させず、非常にうまくスケールされます。

+0

MySQL/Sphinxについて理解してくれてありがとう! – etalacse