mysql全文搜索

问题描述:

我想在MYSQL中使用匹配进行有效的全文搜索。特别是我需要使用二元运算符(例如,匹配一些文本,但不包含其他文本)。不过,我也需要高效的事务支持。
但全文搜索只支持MYISAM,而不是Innodb。该怎么办?mysql全文搜索

假设你需要使用Innodb。

我建议使用外部搜索工具 - 狮身人面像或solr会得到我的投票。它们都比mysql全文搜索返回更好的结果,而且速度更快。我会说狮身人面像比较容易起来,特别是来自mysql。

如果你不能安装它们中的任何一个,或者没有时间,那么你可以移动或复制myisam表中的必要字段,以便使用mysql的全文搜索。

+0

好的建议,但我不能移动或重复表/列,我需要在搜索后删除匹配结果,最好在单个SQL语句中完成。 – user121196 2010-03-20 00:39:19

这是一个建议,而不是回答。

如果您要拥有一个大型数据库或想要高级功能,请不要使用mysql的全文搜索。你可以使用狮身人面像或lucene。

SPhinx通常更快,更轻,但Lucene有更多的功能。我亲自使用狮身人面像。

+0

使用Lucene,因为Lucene是基于Java的。 – TIMEX 2010-03-20 00:47:32

+0

狮身人面像是PHP唯一的权利? – user121196 2010-03-20 00:47:42

+0

您可以在lucene或狮身人面像中使用任何语言。这是“设置它”的事实,lucene是基于java的。 – TIMEX 2010-03-20 00:49:03

你也可以尝试Ferret它是一个红宝石实现的apache搜索库。根据速度测试,它也快得多。