[解決済み] ElasticSearch、Sphinx、Lucene、Solr、Xapian。どのような用途に適しているのか?[クローズド]
質問
現在、巨大なSQLクエリを持つよりも、他の検索方法を検討しています。 私が見たのは エラスティックサーチ を使って遊んでみました。 フーッ (Pythonによる検索エンジンの実装)。
選択した理由を教えてください。
解決方法は?
ElasticSearchの開発者として、なぜ私が最初にそれを作ったのか、その理由を説明することができるかもしれません。)
純粋なLuceneを使用することは困難です。また、ライブラリであるため、分散サポートはなく、組み込みのJavaライブラリとしてメンテナンスが必要です。
Luceneの使い勝手という点では、昔(もう6年近く前)、Compassを作りました。その目的は、Luceneの使用を簡素化し、日々のLuceneをよりシンプルにすることだった。何度も何度も出会ったのは、Compassを配布できるようにすることだった。GigaSpaces、Coherence、Terracottaなどのデータグリッドソリューションと統合し、Compassの中から取り組み始めましたが、それだけでは不十分です。
Luceneの分散ソリューションの中核は、シャーディングである必要があります。また、HTTPやJSONがユビキタスAPIとして進化したことで、言語の異なる多くのシステムを簡単に利用できるソリューションということになります。
そのため、思い切ってElasticSearchを作りました。ElasticSearchは、非常に高度な分散モデルを持ち、JSONをネイティブに話し、多くの高度な検索機能を公開しますが、これらはすべてJSON DSLでシームレスに表現されます。
SolrもHTTPでインデックス/検索サーバを公開するソリューションですが、私は エラスティックサーチ は、はるかに優れた分散モデルと使いやすさを提供します(現在は検索機能の一部が不足していますが、そう長くはありません。 コンパス の機能をElasticSearchに取り込みました)。もちろん、ElasticSearchを作ったのは私なので、偏見もありますが、ご自身で確認してみてください。
Sphinxに関しては、私は使ったことがないので、コメントできません。私が紹介できるのは このスレッドはSphinxフォーラムにあります ElasticSearchの分散モデルの優位性を証明するものだと思います。
もちろん、ElasticSearchは分散型というだけでなく、さまざまな特徴を持っています。実はクラウドを意識して作られているんです。機能一覧はサイトで確認できます。
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン