任务是在我的项目(PHP/Zend Framework 2 + MySQL)中实现MySQL中的文本搜索。问题是文本字段根本不大,主要是 VARCHAR 字段或城市名称、公司名称等连接字段,每个实体大约 5-10 个字段。 所以目前我决定选择Lucene(zend框架2模块 - Zend Search),但是对于小型varchar字段使用Lucene或Sphinx等技术是否有效?
谢谢。
最佳答案
当然,Lucene 或 Sphinx 可以使用任何包含文本的 varchar 列。* 它们不必很大。
任何全文索引解决方案都比使用 LIKE '%word%'
好数百或数千倍!
您可能对我的演示感兴趣,Fulltext Search Throwdown 。
您还可以观看我以网络研讨会形式进行演示的录音:http://www.percona.com/webinars/2012-08-22-full-text-search-throwdown (它是免费的,但需要注册)。
* Lucene 和 Sphinx 也可以对数字列执行一些操作。
PS:我是 Zend Framework 1.0 的项目负责人。 Zend_Search_Lucene 是大约 2007 年的一个有趣的实验,但相对于 Apache Lucene/Solr 来说它已经过时了,而且 Zend_Search_Lucene 比 Java 实现慢几个数量级。我不会为此烦恼。
关于php - mysql数据的文本搜索技术,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17756096/