Railsを使った全文検索
-
16-09-2019 - |
質問
Rails のプラグイン/ジェムを検索することを検討しています。ほとんどの記事はフェレット (ルシーン) をウルトラスフィンクス、あるいは思考するスフィンクスと比較していますが、それについて語るものはありません。 サーチロジック. 。それをどのように比較するかについて何か手がかりを持っている人はいますか?何を使用し、どのように機能しますか?
解決
Thinking_sphinx と sphinx は美しく動作し、インデックス作成、クエリ、インストールの問題はありません (本番のスライスホストを含む 5 つまたは 6 つのインストール)
なぜ誰もがスフィンクスを使わないのでしょう、例えば craigslist など。その制限については、ここをお読みください (1 年半前の記事。Sphinx 開発者の Aksyonoff はこれらに取り組んでおり、機能と信頼性を追加し、驚くべきペースでバグを撲滅しています)
http://codemonkey.ravelry.com/2008/01/09/sphinx-for-search/
http://www.ibm.com/developerworks/opensource/library/os-php-apachesolr/
全文検索エンジンの比較 – Lucene、Sphinx、Postgresql、MySQL?
フェレット:インストールは簡単ですが、適切にステムされず、インデックス作成が非常に遅くなります (1 つの mysql データベース:スフィンクス:3 秒、フェレット:50分)。負荷がかかった本番環境の DRB サーバーの問題 (インデックスの破損) が詳しく文書化されています。そうは言っても、私は 3 年前に act-as_ferret が登場して以来、開発でこれを使用しており、非常に役に立ちました。ポーターステミングに固執しないことは、状況によっては利点があります。
Lucene と Solr は、オープンソース検索のゴリラ/マックトラック/ヘビー級チャンピオンです。チームは、驚くべき数の新機能を開発してきました。 solr 14 リリース:
Solr として機能:Tomcat または桟橋を設置すればうまく機能しますが、場合によっては面倒なこともあります。の mattmatt による A-A-S フォーク がメインフォークですが、このプロジェクトは比較的メンテナンスされていません。
Tomcat のインストールについて:SOLR/lucene は、私がこれまで見てきたソフトウェア パッケージの中で間違いなく最高のナレッジ ベース/サポート検索エンジンを備えています (それほど驚かないと思います)。検索ボックスは次のとおりです。
http://www.lucidimagination.com/
新しいサンスポット Ruby ラッパー、solr-ruby 上に構築されています。期待できそうですが、OSX にはインストールできませんでした。AR を通じてデータベースだけでなく、すべての Ruby オブジェクトにインデックスを付けます
本当に有益なことの 1 つは、2 つの検索プラグインをインストールすることです。スフィンクスと SOLR、スフィンクスとフェレットを比較して、どのような異なる結果が返されるかを確認してください。それはとても簡単です
@sphinx_results - @ferret_results
この投稿と回答を見たばかりです
http://www.jroller.com/otis/entry/open_source_search_engine_benchmark
他のヒント
まず最初に、私の明白なバイアス:。私が作成したとスフィンクスを考える維持
そう、私は実際にそれについてNYCルビー会う最後の夜のベン・ジョンソン(SearchLogicの作成者)が存在見て、偶然にも。 SearchLogicは、SQLのみである - ので、あなたは大規模な表を扱うていない、と関連性のランキングを必要とされていない場合、それはあなたが探している正確に何である可能性があります。構文は、あまりにも、かなりきれいです。
あなたがあなた自身のないコードによって処理されるすべてのクエリ・インテリジェンスをしたい場合は、しかし、その後、スフィンクスやSolrの(フードの下のLuceneですが、私は思う)、おそらくより良い出て仕事に行くされます。
SearchLogicは、スフィンクスが行う自動インデックスを提供していない、良いプラグインですが、本当にあなたの検索コードを読みやすくするためのものです。私はフェレットを使用していないが、スフィンクスは信じられないほど強力です。
http://railscasts.com/episodes/120-thinking-sphinxする
それがどのように柔軟参照するには、グレート導入ます。
私はSearchLogicを使用していないが、私はLuceneのは、多くの言語での実装を持っている非常に成熟したプロジェクトであることを伝えることができます。これは、高速かつ柔軟で、APIはで動作するように楽しいです。それは良い賭けだ。
この質問が Google の全文検索で依然として上位にランクされていることを考えると、私が本当に言いたいのは、 黒点 Rails アプリケーションに全文検索機能を追加することに興味がある (そしてそのために Solr を使いたいと考えている) 場合、今日ではさらに強力です。これに関する完全なチュートリアルを確認できます ここ.
そして、私たちがそれをやっている間に、この分野に到着した別の候補者は 弾性検索, 、Lucene 上に構築されたリアルタイム全文検索エンジンを目指しています (ただし、Solr と比較するとやり方が異なります)。ElasticSearch には、すぐに使用できるシャーディングと複数ノードへのレプリケーション、より高速なリアルタイム検索、条件に一致するものが利用可能になったときに通知を受け取ることができる「パーコレーター」が含まれており、その他の多くの機能により非常に高速に移動します。API は非常にシンプルで、形式として JSON を使用する REST に完全に基づいているため、その上に何かを構築するのは簡単です。それを使用するためにプラグインさえ必要ないと言う人もいます。
個人的に、私は、Webアプリケーションのデータベース不可知論者を気にし、pg83でフルテキスト検索を使用して、非常に満足していません。あなたのフレームワーク/言語を変更するとき場合と利点は、あなたがまだフルテキスト検索を持っていること、である。
依存せずに、簡単な検索宝石を探している人のために、チェックアウト acts_as_indexedする