web-dev-qa-db-ja.com

MongoDB全文検索とLucene?

MongoDBの全文検索は、現時点でLuceneと比較してどうですか?質問の理由は、次のことに対する私の不確定性によるものです。

a)約6か月前にまだベータ版であったため、本番環境でmongoのFTS実装を使用します

そして

b)luceneはJavaを使用するため、さらに別の可動部分が導入されます。

14
paulkon

プログラミングフォーラムにはおそらく適さないであろう長いトピックに迷い込むことなく、私はこれを基本的にカバーしようとしますが、それでもポイントをカバーしようとします。

大まかな比較に飛び込むときに考慮すべき主なことはこれです:"'XYZ'リレーショナルデータベースエンジンの全文検索はLuceneに対してどのようにスタックしますか"

したがって、それを考慮し、それらの製品に組み込まれている「フルテキスト」機能の経験がある場合、それらは、MongoDBの「フルテキスト」アップルと比較する必要があるリンゴです

つまり、MongoDBは基本的なフルテキスト機能を提供しますが、リレーショナル製品に見られる機能と大差ありません。 a:)で述べたように、施設は新しいですが、以前のものよりも優れていて、何もありませんでした。

b:)では、Lucene、および派生物/対応物(Solr/ElasticSearchなど)は、まったく別の動物と見なす必要があります。 必要な高度なトークン化とステミング、検索で"これに似た"およびファセットカウントの機能が組み込まれています。そのような場合、別の製品が必要です。

もちろん、LuceneなどのMongoDBストアからのデータにインデックスを付けるためのソリューションはいくつかあり、このプロセスをカスタマイズすることも難しくありません。しかし、それはインフラストラクチャの別の可動部分を維持しています。

したがって、これをLuceneと Compare MongoDBテキスト検索の必要性とは見なしていません。最終的に異なることを行うために存在するため、問題です。アプリケーションに必要なもののあなたに最適なソリューションを選択してください。

追加する唯一のことは、Lucene(および派生)ファミリーは素晴らしい製品であるということです。少なくとも評価するために、彼らに試してみるのをためらわないでください。以前のポイントは、「標準のデータベーステキスト検索」よりもはるかに強力であるということです。さらに、管理者と学習曲線は一般的に「思ったほど難しくはありません」。遊んでください、それは実装する価値があるかもしれません。

38
Neil Lunn

長い話を短くするために:はい、Lucene(Solr/ElasticSearch)は別の可動部分です。そして、あなたは私が私のシステムに可動部品を追加するのが嫌いであることを知っている必要があります。私はそれを避けるために何でもします。ただし、単純な(単純な!)全文検索を少し超えたアプリケーション内の検索をサポートしたい場合はLuceneが必要です。私はあなたがそれに慣れたとき、あなたは二度とそれを見逃すことは決してないだろうとあなたに約束します。

したがって、簡単な推奨事項は次のとおりです。試してみてください。後悔しない。

15
heinob