首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在MySql 8上启用全文搜索?

问如何在MySql 8上启用全文搜索?
EN

Database Administration用户
提问于 2020-08-14 15:56:31
回答 2查看 830关注 0票数 1

我使用的是MySql 8。我想加快表单表上的搜索速度。

代码语言:javascript
复制
select * FROM dirctory_coop where name like '%mystr%';

有人提到使用全文搜索-- https://dev.mysql.com/doc/refman/8.0/en/fulltext-search.html。不过,我对此有意见。下面是我的桌子。

代码语言:javascript
复制
mysql> desc directory_coop;
+----------+--------------+------+-----+---------+----------------+
| Field    | Type         | Null | Key | Default | Extra          |
+----------+--------------+------+-----+---------+----------------+
| id       | int          | NO   | PRI | NULL    | auto_increment |
| name     | varchar(250) | NO   |     | NULL    |                |
| enabled  | tinyint(1)   | NO   |     | NULL    |                |
| phone_id | int          | YES  | MUL | NULL    |                |
| email_id | int          | YES  | MUL | NULL    |                |
| web_site | longtext     | NO   |     | NULL    |                |
+----------+--------------+------+-----+---------+----------------+

我尝试了下面的语句来更新我的列定义,但是我得到了以下错误.

代码语言:javascript
复制
mysql> alter table directory_coop modify column name FULLTEXT;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FULLTEXT' at line 1
mysql> alter table directory_coop modify name FULLTEXT;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FULLTEXT' at line 1

我还需要做些什么来启用全文搜索应该提供的性能优化?

EN

回答 2

Database Administration用户

回答已采纳

发布于 2020-08-14 16:43:14

您必须添加或创建一个类似于

代码语言:javascript
复制
 ALTER TABLE directory_coop ADD FULLTEXT idx_name(name);

有关更多信息,请阅读手册变更表

票数 0
EN

Database Administration用户

发布于 2020-08-14 16:43:43

必须做的第一件事是创建一个FULLTEXT索引,如下所示:

代码语言:javascript
复制
ALTER TABLE directory_coop ADD FULLTEXT name_ftndx (name);

这只是个开始。

接下来需要做的是理解使用FULLTEXT索引的SQL语法。

请阅读关于全文索引的MySQL文档

我有关于使用它们的DBA StackExchange中的许多帖子。

下面是一个启动您的好例子:为什么全文搜索返回的行数少于以下。这将显示使用LIKE和使用MATCH函数之间的区别。

我仍然建议在阅读我的文章之前先阅读MySQL文档。

警告

请知道InnoDB全文索引中没有包含36个单词。

我在DBA StackExchange中提到过两次

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/273760

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档