例如,我正在搜索姓氏为Ash的人,因此在查询中我搜索了Ash。它将向我显示姓氏为Ashley,Ashby等的人,但不会显示姓氏为Ash的人

这是我的sql的示例:

SELECT * FROM `People`
WHERE MATCH(PersonFirstName, PersonLastName) AGAINST('ash*' IN BOOLEAN MODE) LIMIT 20

是否存在某种规则,必须超过3个字符或类似字符才能使MATCH AGAINST能够找到它?

最佳答案

请参阅系统变量ft_min_word_len,它指定要由全文搜索索引的单词的最小长度。默认值为4,因此全文搜索不会找到3个字母的单词。有关全文搜索参数的更多信息,请访问12.9.6. Fine-Tuning MySQL Full-Text Search。该页面说明:


[mysqld]
ft_min_word_len=3

关于mysql - 为什么SQl MATCH AGAINST找不到结果中只有3个字符的结果?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17796886/

10-10 20:33