首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql全文搜索不返回任何结果

问Mysql全文搜索不返回任何结果
EN

Database Administration用户
提问于 2018-05-05 00:58:04
回答 1查看 2.8K关注 0票数 0

我对MySQL表中的全文搜索有一个问题。

MATCH AGAINST不返回任何结果,即使我有7条包含我正在寻找的单词的记录。我该怎么做才能让它返回行?

代码语言:javascript
复制
SELECT * 
FROM site_plugin_products_cache_texts 
WHERE MATCH(item_text) AGAINST ('+your +name' IN BOOLEAN MODE);

没有排。

代码语言:javascript
复制
SELECT * 
FROM site_plugin_products_cache_texts 
WHERE item_text LIKE'%your name%'

7排(S 0.071)

http://sqlfiddle.com/#!9/70c3fa/1/0

谢谢。

EN

回答 1

Database Administration用户

发布于 2018-05-05 02:29:26

你知道MySQL有一个停止词列表吗?

对于MyISAM,有543个单词没有包含在全文索引中?

在MySQL5.6文档中(用于MyISAM搜索索引的停止词),你可以看到列表。

  • name在第55行第4列
  • your在第108行第4栏

所以所有搜索这两个词的尝试都会失败。

如果将表转换为InnoDB,删除并创建FullText索引,您将找到它们。InnoDB全文索引只有36个停止词。

如果表必须保持为MyISAM,则必须提供一个空的停止词列表,重新启动mysqld,删除并再次创建FullText索引。

以下是我过去在这方面的一些帖子:

请参阅关于如何设置和空停止字列表的Jan 26, 2012帖子。

更新2018-05-04 22:44

如果您在中运行此操作

代码语言:javascript
复制
SELECT * FROM site_plugin_products_cache_texts
WHERE match(item_text) AGAINST ('+CALL' IN BOOLEAN MODE);

这将起作用,因为CALL不在停止词列表中。

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

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

复制
相关文章

相似问题

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