Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mysql全文搜索_Mysql_Innodb - Fatal编程技术网

mysql全文搜索

mysql全文搜索,mysql,innodb,Mysql,Innodb,我想在MYSQL中使用match-on高效地进行全文搜索。特别是我需要使用二进制运算符(例如,匹配某些文本,但不匹配其他文本)。但是,我还需要高效的事务支持。 但只有MYISAM支持全文搜索,Innodb不支持全文搜索。怎么办?假设您需要使用Innodb 我建议使用外部搜索工具——斯芬克斯或索尔会得到我的选票。两者都比mysql全文搜索返回更好的结果,而且速度更快。我认为sphinx更容易使用,尤其是mysql 如果您无法安装其中任何一个,或者只是没有时间,您可以移动或复制myisam表中的必要

我想在MYSQL中使用match-on高效地进行全文搜索。特别是我需要使用二进制运算符(例如,匹配某些文本,但不匹配其他文本)。但是,我还需要高效的事务支持。

但只有MYISAM支持全文搜索,Innodb不支持全文搜索。怎么办?

假设您需要使用Innodb

我建议使用外部搜索工具——斯芬克斯或索尔会得到我的选票。两者都比mysql全文搜索返回更好的结果,而且速度更快。我认为sphinx更容易使用,尤其是mysql


如果您无法安装其中任何一个,或者只是没有时间,您可以移动或复制myisam表中的必要字段,以便使用mysql的全文搜索。

这是一个建议,而不是答案

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


狮身人面像通常更快更轻,但Lucene有更多的特点。我个人使用Sphinx。

您也可以尝试使用Ferret,它是apache搜索库的ruby实现。根据速度测试,它也快得多。

建议不错,但我不能移动或复制表/列,我需要在搜索后删除匹配结果,最好在一条SQL语句中完成。使用Lucene,因为Lucene是基于Java的。可以使用Lucene或sphinx的任何语言。事实上,lucene的“设置”是基于java的。插入和更新可以不经过它们就完成吗?“任何语言”如何使用它们?他们会不断更新指数吗?