首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MYSQL匹配示例不起作用。"Spa“是不是一句废话?

MYSQL匹配示例不起作用。"Spa“是不是一句废话?
EN

Stack Overflow用户
提问于 2012-03-28 22:19:16
回答 3查看 921关注 0票数 3
代码语言:javascript
复制
SELECT * FROM mytable WHERE match(fieldname) against('spa')

我不明白为什么这个查询没有返回任何结果。它应该至少找到10行包含单词spa的行。Spa不是一个关键词/停止词,对吧?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-03-28 22:25:09

要索引的单词的最小和最大长度由ft_min_word_len和ft_max_word_len系统变量定义。默认最小值为四个字符的;默认最大值取决于版本。如果更改任何一个值,都必须重新生成全文索引。例如,如果希望三个字符的单词可搜索,则可以通过将以下行放入选项文件中来设置ft_min_word_len变量:

代码语言:javascript
复制
[mysqld]
ft_min_word_len=3

然后重新启动服务器并重新构建全文索引。请特别注意此列表后面的说明中关于myisamchk的说明。

来源:http://dev.mysql.com/doc/refman/5.1/en/fulltext-fine-tuning.html

票数 5
EN

Stack Overflow用户

发布于 2012-03-28 22:25:15

不,ft_min_word_length不是默认的停用词之一,但是在MySQL全文搜索中有一个最小的词长度,我相信它的默认长度是4: spa

票数 0
EN

Stack Overflow用户

发布于 2012-03-28 22:26:41

搜索最小长度为四个字符。但是,搜索功能似乎可以更改

Fine-Tuning MySQL Full-Text Search

的全文搜索功能几乎没有用户可调的参数。如果您有MySQL源代码发行版,则可以对全文搜索行为进行更多控制,因为某些更改需要修改源代码。请参阅第2.17节“从源安装MySQL”。

请注意,全文搜索经过了仔细的调整,以获得最大的效率。在大多数情况下,修改默认行为实际上会降低有效性。除非您知道自己在做什么,否则不要更改MySQL源代码。

本节中介绍的大多数全文变量都必须在服务器启动时设置。需要重新启动服务器才能更改它们;在服务器运行时不能修改它们。

某些变量更改需要在表中重新生成全文索引。本节后面将给出执行此操作的说明。

要索引的单词的最小和最大长度由ft_min_word_len和ft_max_word_len系统变量定义。(请参阅第5.1.3节“服务器系统变量”。)默认最小值为四个字符;默认最大值取决于版本。如果更改任何一个值,都必须重新生成全文索引。例如,如果希望三个字符的单词可搜索,则可以通过将以下行放入选项文件中来设置ft_min_word_len变量:

代码语言:javascript
复制
[mysqld] 
ft_min_word_len=3 

然后重新启动服务器并重建全文索引。请特别注意此列表后面的说明中关于myisamchk的注释。

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

https://stackoverflow.com/questions/9909460

复制
相关文章

相似问题

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