php - mysql数据的文本搜索技术

标签 php mysql sphinx zend-search-lucene

任务是在我的项目(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/

相关文章:

php - 但我真的需要文本区域上的 htmlentities 吗?

lucene - Lucene和Sphinx支持前缀匹配吗?

php - Magento:获取礼品卡代码和金额

java - POST 和 GET 请求,在 PHP 中使用它们

mysql - MySQL 中的自定义 XPath

php - 手动插入子表时出现foreign key constraints fails错误如何解决?

php - 根据所选的某些值根据运行时切换数据库

mysql - 使用有序 Sphinx 搜索输出获取 MySQL 条目时对冗余进行排序

mysql - 使用 Sphinx MySQL 获取结果总数

php - 使用bindValue进行PDO调试更新查询