私はSphinx、Solr、Elasticsearchなどの検索ソリューションを検討してきましたが、それらはすべて私が必要とするものには複雑すぎます。
私は基本的に、それぞれ1つの小さな識別子に関連付けられたテキストのチャンクを投入できる最適な分散型のサーバーソフトウェアを探しています。次に、キーワードをすばやく見つけて、1つ以上のキーワードと一致するチャンクに指定された識別子を返します。
このようなものは存在しますか?
MysqlまたはMongoDBの全文検索機能を試すことができます。
http://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html
http://www.mongodb.org/display/DOCS/Full+Text+Search+in+Mongo
Postgresは、全文検索をすぐにサポートする優れた機能を備えています。
私はElasticsearchを使用していますが、sphinxから移行しました。もちろん、学習曲線は高くなりますが、JSONでクエリを実行する方法が非常に柔軟であるため価値があります。
残念ながら、MySQL全文検索では、専用の検索ソリューションと同じレベルのパフォーマンスが得られないだけですが、それは疑問を投げかけます。気になりますか?
sphinxsearchは、より高速なインデックス作成、より高度なクエリ、増分更新を提供し、MySQLですぐに機能しますが、それでも別のものです実行および保守する必要のあるサービス。 mysqlは少し遅くなり、コレクションが大きくなるとインデックス作成が遅くなりますが、組み込みであり、バックグラウンドで実行するために追加のサービスを必要としません。質問は、クエリに1秒かかるのか10秒かかるのか気にしないかということです。
ここにSphinxブログからのいくつかの数字があります 、そしていくつかの ウィキペディアの検索バックエンドからのベンチマーク 。