Php mysql数据的文本搜索技术

Php mysql数据的文本搜索技术,php,mysql,sphinx,zend-search-lucene,Php,Mysql,Sphinx,Zend Search Lucene,任务是在我的项目(PHP/Zend Framework 2+MySQL)中用MySQL实现文本搜索。问题是文本字段一点也不大,它主要是VARCHAR字段或连接字段,如城市名称、公司名称等,每个实体大约有5-10个字段。 因此,目前我决定选择Lucene(zend framework 2模块-zend Search),但在小型varchar字段中使用Lucene或Sphinx等技术是否有效 谢谢。当然,Lucene或Sphinx可以处理任何包含文本的varchar列。*它们不必太大 任何全文索引解

任务是在我的项目(PHP/Zend Framework 2+MySQL)中用MySQL实现文本搜索。问题是文本字段一点也不大,它主要是VARCHAR字段或连接字段,如城市名称、公司名称等,每个实体大约有5-10个字段。 因此,目前我决定选择Lucene(zend framework 2模块-zend Search),但在小型varchar字段中使用Lucene或Sphinx等技术是否有效


谢谢。

当然,Lucene或Sphinx可以处理任何包含文本的varchar列。*它们不必太大

任何全文索引解决方案都比使用像“%word%”这样的
要好几百倍或几千倍。

你可能对我的演讲感兴趣

你也可以观看我以网络研讨会的形式发表演讲的录音:(这是免费的,但需要注册)

*Lucene和Sphinx也可以用数字列做一些事情


PS:我是Zend Framework 1.0的项目负责人。Zend_Search_Lucene大约在2007年是一个有趣的实验,但是相对于ApacheLucene/Solr,它已经过时了,Zend_Search_Lucene比Java实现慢了几个数量级。我不想麻烦了。

你在谈论多少数据?这是大规模的工具。模块/表:它们不同,从5k到300k记录,历史记录表估计有数百万条记录。感谢您的评论和宝贵的介绍。我也期待着使用/切换到percona服务器。@Bill Karwin有一个很好的建议。我设计了PRWeb拥有的搜索引擎,我们只处理了大约5000万个文档,但与使用RDBMS进行搜索相比,这是一个相当大的改进。必要的区别是:搜索线程仍然受制于行、页和表锁。因此,当您添加/更新/索引一系列行时,所有搜索(最多)都会打嗝。这种争用对您的数据库不是必需的,但会将大量读者争用添加到您搜索的表中。Percona是一个不错的选择,但我怀疑他们的顾问会建议您不要将RDBMs与全文搜索相结合,除非您的用户群非常小。@memnoch_proxy,我为Percona工作,担任顾问和培训师。如果另一种选择是使用通配符的
比如
,我们建议使用全文搜索。是的,Java实现比Zend_search_Lucene快,问题是我们是否试图用大炮杀死一只蝴蝶,考虑到应用程序的规模和包含字段的少量单词。。