Полнотекстовый индекс игнорируется в булевом режиме при использовании с условным числом слов - PullRequest
0 голосов
/ 24 октября 2011

Полнотекстовое совпадение игнорирует свой индекс, когда я добавляю несколько слов, условных для его логического режима.Возможны следующие варианты:

explain select * from seeds  WHERE  MATCH(text) AGAINST ("mount cameroon" IN BOOLEAN MODE);

вывод

+----+-------------+-------+----------+---------------+------+---------+------+------+-------------+
| id | select_type | table | type     | possible_keys | key  | key_len | ref  | rows | Extra       |
+----+-------------+-------+----------+---------------+------+---------+------+------+-------------+
|  1 | SIMPLE      | seeds | fulltext | text          | text | 0       |      |    1 | Using where |
+----+-------------+-------+----------+---------------+------+---------+------+------+-------------+

тот же запрос с условным числом слов

explain select * from seeds  WHERE  MATCH(text) AGAINST ("mount cameroon" IN BOOLEAN MODE) = 4;

вывод

+----+-------------+-------+------+---------------+------+---------+------+------+-------------+
| id | select_type | table | type | possible_keys | key  | key_len | ref  | rows | Extra       |
+----+-------------+-------+------+---------------+------+---------+------+------+-------------+
|  1 | SIMPLE      | seeds | ALL  | NULL          | NULL | NULL    | NULL | 9607 | Using where |
+----+-------------+-------+------+---------------+------+---------+------+------+-------------+

неужели это не может быть правильным поведением?

1 Ответ

0 голосов
/ 28 октября 2011

Диагноз состоит в том, что оптимизатор Mysql легко запутывается, когда любое условие добавляется к полному тексту MATCH. Решение заключается в рефакторинге запроса (разбить на подзапросы и объединить).

Эта диагностика и решение любезно предоставлены RolandoMySQLDBA (https://stackoverflow.com/users/491757/rolandomysqldba), и доступны в полном объеме здесь

Оптимизация полнотекстового поиска mysql ,

и здесь

https://dba.stackexchange.com/questions/7136/fulltext-index-ignored-in-boolean-mode-with-number-of-words-conditional.

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