Как сбросить стоп-слова в MYSQL?
-
18-09-2019 - |
Вопрос
Я хочу сбросить список стоп-слов в mysql для ПОЛНОТЕКСТОВОГО поиска.Я установил сервер WAMP в своей системе, у которого есть phpmyadmin для доступа к mysql.Но я не знаю, как сбросить стоп-слово в phpmyadmin.Кто-нибудь, пожалуйста, может сказать мне, как это сделать.
Я также http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html#sysvar_ft_stopword_file прочтите эту ссылку, но не знаете, как ею можно воспользоваться ???
Решение
Я предполагаю, что вы используете Сервер вампиров.
Щелкните значок в трее, выберите MySQL
, затем нажмите my.ini
.Файл конфигурации откроется в блокноте.Перейдите в конец файла и добавьте эту строку (после строки порта).:
ft_stopword_file=''
чтобы отключить стоп-слова.Если вы хотите использовать пользовательский файл stop-word, замените эту строку на:
ft_stopword_file='path/to/stopword_file.txt'
(разумеется, укажите путь к файлу stopword).
После установки этой строки сохраните файл конфигурации (Файл -> Сохранить).Затем щелкните значок в трее, выберите MySQL
, тогда Service
, затем нажмите Restart Service
.
Чтобы убедиться, что ваша настройка выполнена правильно, откройте phpMyAdmin
в браузере нажмите на Variables
вкладка вверху, затем найдите ft stopword file
и посмотрите, какие значения для него установлены.
Другие советы
У меня такая же проблема, я не думаю, что вам нужно что-либо перекомпилировать, я читал, что вы можете использовать консоль mysql с набором ft_stopword_file ='path/to/stopword_file.txt ', это не должно требовать перезапуска вашего сервера.но я не думаю, что это продлится до следующего перезапуска, поэтому, пожалуй, я попробую конфигурационный файл и посмотрю, работает ли он
Список стоп-слов, с которыми поставляется MySQL (по крайней мере, для MyISAM), можно найти в исходном коде MySQL, в myisam/ft_static.c
.
Обратите также внимание, что это только "английские" стоп-слова.Предположительно, стоп-слова для других языков определены в другом месте...
Вы можете переопределить или отключить список стоп-слов по умолчанию, используя ft_stopword_file
директива, как указано в комментариях. Полная документация здесь.
у меня была такая же проблема.файл стоп-слов должен быть включен в раздел [mysqld] в файле my.ini.
[mysqld] ft_stopword_file = 'D:/stop.txt ' затем
восстановить таблицу tablename сработало для меня.
Вы можете найти список стоп-слов для использования здесь: https://dev.mysql.com/doc/refman/5.6/en/fulltext-stopwords.html.Я сохранил этот список в файл и сослался на него из конфигурационного файла MySQL (например ft_stopword_file='path/to/stopword_file.txt'
).
Я удалил "это" и "нас" из списка ключевых слов, потому что в моей проблемной области они означают "Информационные технологии" и "Соединенные Штаты".
К сожалению, каждый раз, когда вы меняете список стоп-слов, вам приходится перезапускать MYSQL и перестраивать полнотекстовый индекс.