首页 > 解决方案 > 为什么这个 MYSQL 全文搜索没有给出分数?

问题描述

我有一个这样的记录,在一个表(squirrel_users)中,它有一个全文索引email

+-----------+----------------------------+
| record_id | email                      |
+-----------+----------------------------+
|      7065 | s.j.e.hennessyexample.com  |
+-----------+----------------------------+

但是,如果我在电子邮件上进行 MATCH,在布尔模式下,我不会得到分数:

mysql> SELECT record_id, email, 
(MATCH (email) AGAINST ("+s.j.e.hennessyexample.com" IN BOOLEAN MODE)) AS score 
FROM squirrel_users 
WHERE record_id = 7065 ORDER BY score DESC; 
+-----------+----------------------------+-------+
| record_id | email                      | score |
+-----------+----------------------------+-------+
|      7065 | s.j.e.hennessyexample.com  |     0 |
+-----------+----------------------------+-------+

谁能看到为什么这里的分数为零,我在哪里+<exact saved data>?这可能与句号有关吗?

啊哈-如果我用引号括住这个词,那么它就可以工作:

mysql> SELECT record_id, email, 
(MATCH (email) AGAINST ("+\"s.j.e.hennessyexample.com\"" IN BOOLEAN MODE)) AS score 
FROM squirrel_users 
WHERE record_id = 7065 ORDER BY score DESC;
+-----------+----------------------------+--------------------+
| record_id | email                      | score              |
+-----------+----------------------------+--------------------+
|      7065 | s.j.e.hennessyexample.com  | 25.576061248779297 |
+-----------+----------------------------+--------------------+
1 row in set (0.00 sec)

那么句号会发生什么 - 他们是否将其分解以便将其视为单独的单词?

标签: mysqlfull-text-search

解决方案


推荐阅读