Почему этот полнотекстовый поиск MYSQL не дает оценку? - PullRequest
1 голос
/ 03 апреля 2019

У меня есть такая запись в таблице (squirrel_users) с полнотекстовым индексом email.

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

Однако, если я сделаю МАТЧ по электронной почте, в логическом режиме я не получу оценку:

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)

Так что же происходит с точками остановки - они разбивают это так, что это рассматривается как отдельные слова?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...