2015-04-30 5 views
1

Я хотел бы отключить стоп-слова для полного текстового индекса. База данных работает innodb на mysql 5.6.отключить mysql innodb стоп-слова для таблицы

Я бы хотел отключить его только для одной таблицы. Я нашел документы mysql для innodb_ft_user_stopword_table, но я смущен тем, как заставить мой индекс использовать эту таблицу. Я предполагаю, что могу просто создать пустую таблицу, чтобы отключить эту функцию.

Полнотекстовый индекс в настоящее время существует и соблюдает стоп-слова.

Я думаю, этот процесс должен быть что-то вроде:

  1. создать пустую таблицу стопслов
  2. некоторые, как указывают индекс для новой таблицы
  3. стоп-слов
  4. повторного создания индекса (или удалить, и воссоздайте, в этом случае сделайте шаг 2 здесь.)

Спасибо, что нашли время, чтобы прочитать это.

+0

кратчайшим путем было бы обновить '/ etc/mysql/my.cnf', а затем установить' ft_stopword_file = "" ', а затем перезапустить mysql' sudo /etc/init.d/mysql restart' и, наконец, восстановить таблица 'repair table table_name' –

ответ

0

От dev.mysql

innodb_ft_enable_stopword

Указывает, что набор игнорируемых слов связан с индексом InnoDB FULLTEXT в то время создается индекс. Если параметр innodb_ft_user_stopword_table установлен, стоп-слова берутся из этой таблицы. Иначе, если параметр innodb_ft_server_stopword_table установлен, стоп-слова берутся из этой таблицы. В противном случае используется встроенный набор стандартных паролей по умолчанию.

Ваш шаг 1 верен. На шаге 2 вам нужно установить параметр innodb_ft_enable_stopword = yournewtableofwords в файл my.cnf, а затем перезагрузить mysql, чтобы изменения повлияли. На шаге 3 вы правы, оба варианта кажутся приемлемыми. Вы можете обновить статистику или отбросить и воссоздать индекс. Возможно, вы захотите рассмотреть последнее, а не первое, чтобы быть уверенным.

Вы также можете найти эту ссылку Here с веб-сайта MariaDB по стоп-логам с полным справочным текстом.

2

Просто чтобы прояснить на ответ BK435, вы не установите таблицу в innodb_ft_enable_stopword переменной, вы включите его, а затем установить его на innodb_ft_server_stopword_table или innodb_ft_user_stopword_table:

innodb_ft_enable_stopword=1 
innodb_ft_server_stopword_table=db_name/table_name 
innodb_ft_user_stopword_table=db_name/table_name 

Для таблицы пользователь стоп-слов, я не видите в документации, где вы указываете таблицу WHAT, которую вы выполняете ... она говорит, что это за стол, но не указывает точно, как вы это делаете ...

Я написал немного больше об этом должность:

MySQL 5.6 Full Text Search Issue when Searching for the word "the" in PHP

Смежные вопросы