очень странная ошибка в MySQL. совпадение с поиском работает, но по праву не работает

это работает нормально, если, я ищу правую кнопку, не дает никакого результата. Но данные существуют в базе данных

SELECT *
FROM tblcodes
WHERE MATCH(search_term) AGAINST('+left* +button* ' in BOOLEAN MODE) OR
code LIKE '%left button%'

пожалуйста, дайте любое предложение

1

Решение

Слово право содержится в Полный список стоп-слов MyISAM. Это означает, что он не будет добавлен к полнотекстовому индексу, поскольку предполагается, что он слишком распространен в текстах на английском языке, чтобы фактически помочь идентифицировать контент. Таким образом, вы не можете найти его с помощью match against (но вы все равно найдете его, используя like).

Чтобы изменить это поведение, вы можете изменить или отключить этот список:

Чтобы переопределить список стоп-слов по умолчанию для таблиц MyISAM, установите системную переменную ft_stopword_file. (См. Раздел 6.1.5, «Системные переменные сервера».) Значение переменной должно быть путем к файлу, содержащему список стоп-слов, или пустой строкой, чтобы отключить фильтрацию стоп-слов. Сервер ищет файл в каталоге данных, если не указан абсолютный путь для указания другого каталога. После изменения значения этой переменной или содержимого файла стоп-слов перезагрузите сервер и перестройте ваши индексы FULLTEXT.

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

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector