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

这与全文搜索引擎的比较——Lucene、Sphinx、Postgresql、MySQL,但是我正在寻找的是具体的、受支持的、受益于多个可用系统的经验的建议(似乎有很多:“我使用过 lucene,但没有使用 sphinx”,以及反之亦然)。

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

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

我们正在查看索引数据,而不是页面。要索引的数据可以是多种语言(utf-8 字符集)

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

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

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

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

解答

Sphinx 的一个优点是您可以在您的客户端和 MySQL 服务器之间“插入”它,并且它只会“干扰”专门针对它的查询,透明地将其他查询从 MySQL 中反弹——参见例如这篇文章。无论这是否是您的用例中的优势,您都可以说!

抱歉,没有使用 Xapian 或 Lucene 的实际经验——尽管如此,阅读有关如何部署它们的信息,听起来(对我来说!)好像只有在您确定了实质性优势时才值得。否则,Sphinx 的“简单易用”部署,作为您的客户端和 MySQL 服务器之间的“代理”,对我来说感觉就像一个巨大的、实质性的胜利!

Logo

华为、百度、京东云现已入驻,来创建你的专属开发者社区吧!

更多推荐