MySQL MATCH ПРОТИВ 3-х символьных выражений - PullRequest
0 голосов
/ 26 октября 2018

Когда я запускаю следующее MATCH(my_text) AGAINST ('"hey"' IN BOOLEAN MODE), я получаю результаты для всех строк, содержащих hey

Когда я запускаю следующее MATCH(my_text) AGAINST ('"n=3"' IN BOOLEAN MODE), я получаю нулевые результаты, хотя есть 2 строки, которые содержат n=3

Таблица имеет fulltext индекс

utf8_general_ci сопоставление

ENGINE=InnoDB

innodb_ft_min_token_size = 3

ft_min_word_len = 4

mysql version = 5.6.10

Я подозреваю, что это как-то связано с =, но не уверен, как использовать *()+, чтобы вести себя так, как нужно, пробовал несколько разных комбинацийбезуспешно.

1 Ответ

0 голосов
/ 26 октября 2018

= не считается символом слова, поэтому не индексируется

из: https://dev.mysql.com/doc/refman/8.0/en/fulltext-fine-tuning.html

Модификации набора символов

Для встроенногоПолнотекстовый анализатор, вы можете изменить набор символов, которые считаются символами слова, несколькими способами, как описано в следующем списке.После внесения изменений перестройте индексы для каждой таблицы, содержащей любые индексы FULLTEXT.Предположим, что вы хотите трактовать символ дефиса ('-') как символ слова.Используйте один из этих методов:

Modify the MySQL source: In storage/innobase/handler/ha_innodb.cc (for InnoDB), or in storage/myisam/ftdefs.h (for MyISAM), see the

true_word_char () и misc_word_char () макросы.Добавьте '-' к одному из этих макросов и перекомпилируйте MySQL.

Modify a character set file: This requires no recompilation. The true_word_char() macro uses a “character type” table to distinguish

буквы и цифры из других символов.,Вы можете отредактировать содержимое массива в одном из файлов XML набора символов, чтобы указать, что «-» является «буквой». Затем используйте заданный набор символов для ваших индексов FULLTEXT.Для получения информации о формате массива см. Раздел 10.12.1, «Массивы определения символов».

Add a new collation for the character set used by the indexed columns, and alter the columns to use that collation. For general

Информация о добавлении сопоставлений приведена в Раздел 10.13, «Добавление сопоставления в набор символов».Пример, относящийся к полнотекстовой индексации, см. В разделе 12.9.7 «Добавление параметров сортировки для полнотекстовой индексации».

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