Справочное руководство по MySQL версии 4.1.1-alpha

Тонкая настройка полнотекстового поиска в MySQL


К сожалению, полнотекстовый поиск имеет еще мало настраиваемых пользователем параметров, хотя для последующих модификаций добавление некоторого их количества является очень важной задачей (TODO). Однако при наличии исходного дистрибутива MySQL (see section 2.3 Установка исходного дистрибутива MySQL) имеется больше возможностей управлять полнотекстовым поиском.

Следует отметить, что полнотекстовый поиск был тщательно настроен так, чтобы обеспечить наилучшую эффективность выполнения данной операции. Если изменить установленный по умолчанию режим работы, то в большинстве случаев результаты поиска станут только хуже. Поэтому не вносите какие-либо правки в код MySQL, если не знаете наверняка, что вы делаете!

    Минимальная длина подлежащих индексации слов определяется в MySQL переменной ft_min_word_len (see section 4.5.6.4 SHOW VARIABLES). Установите желаемую величину этой переменной и создайте заново индексы FULLTEXT

    (эта переменная доступна только в версии MySQL 4.0).

  • Список стоп-слов может быть загружен с файла, указанного в переменной ft_stopword_file. See section 4.5.6.4 SHOW VARIABLES. После модификации стоп-листа перестройте ваши полнотекствые индексы. (Эта переменная введена в MySQL 4.0.10)

  • 50-процентный порог определяется выбранной конкретной схемой присваивания весовых коэффициентов. Чтобы отменить ее, измените следующую строку в `myisam/ftdefs.h':

    #define GWS_IN_USE GWS_PROB

    на:

    #define GWS_IN_USE GWS_FREQ

    Затем перекомпилируйте MySQL. Создавать заново индексы в этом случае нет необходимости.

    Примечание: таким образом вы существенно ухудшите способность MySQL продуцировать адекватные величины релевантности для функции MATCH(). Если действительно необходим поиск для таких общеупотребительных слов, то было бы лучше использовать вместо этого поиск в режиме IN BOOLEAN MODE, при котором не предусмотрен 50-процентный порог.

  • Иногда отладчик поисковой машины желает изменить операторы, используемые для логического поиска по полному тексту. Эти операторы определяются переменной ft_boolean_syntax. See section 4.5.6.4 SHOW VARIABLES. Однако эта переменная доступна только для чтения, ее значение устанавливается в `myisam/ft_static.c'.

    Наиболее простым способом перестроить полнотекстовый индекс в тех случаях, когда это нужно - это вот такая команда:

    mysql> REPAIR TABLE tbl_name QUICK;



    Содержание раздела