php mysql全文搜索:lucene,sphinx,还是?

时间:2009-06-03 02:31:04

标签: php mysql search lucene sphinx

这无疑是类似(但不是重复)Comparison of full text search engine - Lucene, Sphinx, Postgresql, MySQL?,但我正在寻找的是具体的,支持的,建议来自多个经验的好处可用的系统(似乎有很多:“我使用过lucene,但不是sphinx”,反之亦然)。

设置:标准LAMP(Mysql 5.0,PHP 5)。

MySQL:表正在使用InnoDB引擎进行外键约束

我们正在研究索引数据,而不是页面。要索引的数据可能是多种语言(utf-8 charset)

我遇到的一些比较(如http://blog.evanweaver.com/articles/2008/03/17/rails-search-benchmarks/)要么不完全适用(ferret是一个lucene端口,但与Zend_Search_Lucene不同),或者他们正在推动他们自己的系统/实现(不是完全不偏不倚)。

我遇到的其他一些内容(例如http://whatstheplot.com/blog/tag/lucene/http://pagetracer.com/2008/02/15/sphinx-and-lucene-search-engines-first-impressions/)为两个系统的性能提供了截然不同的结果。

此外,在我读过的大部分内容中,我都忽略了Xapian。这也值得考虑吗?

所以......我希望你们这里的一些人对这个问题有一些经验,可以帮助提出一些建议,或指出我正确的方向。

2 个答案:

答案 0 :(得分:9)

Sphinx的一个优点是你可以在你的客户端和MySQL服务器之间“插入”它,它只会“干扰”专门解决它的查询,透明地将其他人从MySQL中弹出 - 参见例如{{3} }。这对您的用例来说是否有优势,您最好说出来!

对不起,没有使用Xapian或Lucene的真实体验 - 阅读有关如何部署它们的信息,让它听起来像(对我而言),好像只有在您发现了实质性优势时才值得这样做。否则,Sphinx的“简单派”部署,作为客户端和MySQL服务器之间的“代理”,对我来说感觉就像是一个巨大而实质性的胜利!

答案 1 :(得分:3)

我看了Zend_Search_Lucene和Sphinx的一个听起来相似的项目 - 搜索数据库内容(在我的例子中,书籍信息)。我花了一天时间看着每一个。对于它的价值,我发现Sphinx更容易设置和使用。