У меня есть такая запись в таблице (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)
Так что же происходит с точками остановки - они разбивают это так, что это рассматривается как отдельные слова?