Справочное руководство по MySQL

         

Тонкая настройка полнотекстового поиска в 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).
  • Список стоп-слов (``stopword'') определяется в `myisam/ft_static.c'. Модифицируйте на свой вкус, перекомпилируйте MySQL и создайте заново индексы FULLTEXT.
  • 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'.
Содержание раздела