使用innoDb实现搜索功能的最佳方式

时间:2009-08-09 20:07:07

标签: mysql full-text-search innodb

我需要使用innodb对大型产品表中的索引进行全文搜索,因为缺少事务和关系支持,MyISAM不是一个选项。

我可以想到几种方法,插件,存储过程,带有键的搜索表和MyIsam格式的复制索引。

过去你是如何实现这一目标的,这是最好的方法(包括我没有提到过的)以及为什么?

插件听起来很贵,存储过程听起来很慢,搜索表听起来像是管理员的噩梦。

喜欢听取您的意见。

3 个答案:

答案 0 :(得分:3)

可能使用外部(独立于数据库)全文引擎,例如,Lucene (如果您使用的是PHP,那么你可能还想查看Zend_Search_Lucene

有很多(一些是免费的,一些是昂贵的,一些是开源的,一些是专有的);但它们通常会让你比MySQL全文允许的更远 - 并且它不会被集成到数据库中(这可能是好的:你可以索引文档,例如 - 或者坏:您无法轻松地将这些结果与您的一个SQL查询结果相结合

使用这种引擎的好处是全文搜索确实是他们的工作;并且他们应该做得很好(并且对用户倾向于输入的内容“敏感”)。

缺点是你必须有另一个引擎;这意味着更多的工作,更多的配置和更多的开发,因为你不能只是让它们“插入”你的数据库。

答案 1 :(得分:2)

答案 2 :(得分:0)

Xapian做了一套很好的php绑定,和其他几个一样,xapian可以作为单独的服务器运行,在端口上搜索搜索请求,非常适合在多个站点之间共享内容。

“您的意思是”功能在xapian中存在但在远程服务器版本中尚未存在