我一直在研究 Sphinx、Solr 和 Elasticsearch 等搜索解决方案,但它们都太复杂了,无法满足我的需求。
我基本上是在寻找一种最好的分布式服务器软件,它允许我只输入与一个小标识符相关联的文本块。然后快速找到关键字并返回为与一个或多个关键字匹配的块提供的标识符。
这样的东西存在吗?
我一直在研究 Sphinx、Solr 和 Elasticsearch 等搜索解决方案,但它们都太复杂了,无法满足我的需求。
我基本上是在寻找一种最好的分布式服务器软件,它允许我只输入与一个小标识符相关联的文本块。然后快速找到关键字并返回为与一个或多个关键字匹配的块提供的标识符。
这样的东西存在吗?
你可以试试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 博客的一些数字,以及来自维基百科搜索后端的一些基准。