ありがとう。
既存の「NoSQL」データベースは、「フルテキスト検索」と名付けられるものの合理的な実装を提供していません。特に、MongoDBにはこれまでほとんど何もありませんでした(正規表現を使用した一致は全文検索ではなく、キーワードの単語リストで$ inまたは$ all演算子を使用した検索は、「全文検索」の非常に貧弱な実装です)。 Solr、ElasticSearch、またはSphinxの使用は簡単です。アプリケーションレベルでの実装と統合です。どちらを選択するかは、要件と現在の設定に大きく依存します。
Riak Searchの詳細 http://wiki.basho.com/Riak-Search.html と presentation も同様です
はい。データの完全なLuceneクエリをサポートするためのCouchDB拡張機能である CouchDB-Lucene を参照してください。
MarkLogicには、思い出すと、テキスト検索用のより良いオプションがあります。これは トピックに関するディスカッション ですが、彼らのブログではありますが、彼らの作家からのものです。
Solandra (CassandraベースのApache Solr)を使用したアプリケーションの開発に携わっています。私の経験では、システムは非常に安定しており、TB +データを処理できます。私は個人的に次の理由でソフトウェアに非常に満足しています:1. Cassandraバックエンドによるデータの自動パーティション分割。2。充実したクエリ機能(SolrおよびLuceneによる)。読み取りと書き込み(書き込みは読み取りよりも大幅に高速です)。
ただし、現在Solandraは、バッチ変異をサポートしていないと思います。つまり、Cassandraへの1回の挿入で100列を挿入できますが、Solandraはこれをサポートしていません。
MongoDBの場合、完全なフルテキストインデックス機能はまだありませんが、パイプラインに1つある可能性があります おそらくv2.2で予定 。
当面は、ここで説明するように、文字列配列フィールドを使用してインデックスを配置することで、単純な逆インデックスを作成できます。 Mongoでの全文検索
または、専用のSolrまたはLuceneインデックスで並列のフルテキストインデックスを維持し、非常に野心的であると感じている場合は、Mongo oplogからフルテキストストアに直接複製できます。それ以外の場合は、両方を入力して、アプリケーションロジックとの同期を維持します。
MongoDB に格納されているデータを使用してこれを完了しましたが、フルテキストエンジンを Sphinx Search に入力しています。 mongoには、将来のリリースにフルテキストを追加することに関して投票可能な問題があることを知っています。ただし、この時点ではありません。
Mongo情報をスフィンクスに挿入する方法はいくつかあります。ただし、私が最も運が良かった(そして非常に簡単だった)のは、 xmlpipe2 によるものです。これの使い方を完全に理解するには少し時間がかかりました。ただし、この記事: PHPのSphinx xmlpipe2 には、(少なくともPHPでは)ドキュメントを構築する方法と、sphinxに挿入する方法を示す優れたウォークスルーがあります。
基本的に私の設定は次のようになります:
source my_source {
type = xmlpipe
xmlpipe_command = /usr/bin/php /www/generateSphinXml.php identifierForMyTable
}
私のインデックスでは、このようになります:
index my_index {
source = my_source
path = /usr/local/sphinx/var/data/my_index
docinfo = extern
min_Word_len = 1
mlock = 0
morphology = stem_en
charset_type = utf-8 //<----- This is q requirement however.
enable_star = 1
html_strip = 0
min_prefix_len = 2
}
私はこれで素晴らしい成功を収めました。うまくいけば、あなたはこれが役に立つと見つけることができます。
PHPを使用している場合、 MongoLantern。http://sourceforge.net/projects/mongolantern/ という名前のNo-SQLデータベースMongoDBで全文検索を行うための優れたソリューションがあります。 =
以前はSphinx + MongoDBを使用してフルテキスト検索を実行していましたが、パフォーマンスは優れていましたが、結果の品質は非常に悪かったです。 MongoLanternを使用すると、現在の検索が大幅に改善されました。
MongoLanternはMongoDBサイトにもリストされています。
自分で試してみたら教えてください。
cLunceプロジェクト。また、上記で言及されていないxapian。私はSphinxを使用していますが、設定は非常に優れていますが、多少扱いにくいです。私は実際には、sphinx.confファイルでSphinxのSQLを使用するのではなく、XMLPIPE2を介してMongoからSphinxにデータをパイプすることを好みます。
Solrは10genのMongo Connectorで使用できます。これにより、そこにデータをプッシュできます(とりわけ)。
https://github.com/10gen-labs/mongo-connector/tree/master/mongo-connector
彼らの例から:
python mongo_connector.py -m localhost:27217 -t http://localhost:8080/solr
Couchbase 5.0は、オープンソースのBleveエンジン上に構築された全文検索機能をリリースしています。全文のインデックス作成を有効にして、データベース内の既存のJSONドキュメントに対して使用を開始します。
トピックをカバーするいくつかのスライドとプレゼンテーションビデオ、ElasticsearchおよびLuceneについても言及しています... https://www.slideshare.net/Couchbase/fulltext-search-how-it-works-and-what-it-できる
間違いなくSolr。 NoSQLです。
それは: