Стоп-слова и полный текст логических значений MySQL

Я использую встроенные в mysql логические полнотекстовые функции для поиска в наборе данных. (ПОИСКПОЗ... ПРОТИВ синтаксиса).

Я столкнулся с проблемой, когда ключевые слова, которые находятся в списке стоп-слов MySql по умолчанию, не возвращают никаких результатов. Например, «до», «между» и т. д.

Нет (я думаю) способа отключить стоп-слова MySql во время выполнения. И поскольку я размещаю свой веб-сайт на общем сервере (DreamHost), у меня нет возможности перекомпилировать MySQL с отключенными стоп-словами.

Мне интересно, есть ли у кого-нибудь предложения по решению вышеуказанной проблемы? (Без обновления до VPS или выделенной системы)

Заранее спасибо за помощь,

Трэвис


person Travis    schedule 31.01.2011    source источник


Ответы (2)


У меня была эта проблема, и я выполнил поиск в Google, наткнувшись на этот пост (более года спустя). Я также нахожусь на общем хосте и рвал на себе волосы из-за стоп-слов, установленных в mysql. Я нашел обходной путь, который отлично работает для меня, надеюсь, он может быть полезен и другим.

Вы также можете использовать команду REGEXP для поиска в таблице.

SELECT * FROM table WHERE column REGEXP 'searchterm'

Как я реализую это, сначала выполняю синтаксис MATCH AGAINST, если count = 0, я делаю REGEXP вместо того, чтобы давать своим пользователям больше результатов. Лучше, чем вообще никакого результата, благодаря стоп-словам и минимальной длине.

person Auden    schedule 01.04.2012

Забудьте об этом, изменение полнотекстовых настроек mysql требует перезагрузки
подробности - http://dev.mysql.com/doc/refman/5.0/en/server-system-variables.html

обратите внимание, что динамический столбец помечен как НЕТ для ft_stopword_file

Тем не менее, не помешает проконсультироваться с вашим хостинг-провайдером...

Если он перезапустится для вас, вы можете использовать следующее, чтобы восстановить полнотекстовую таблицу

mysql> REPAIR TABLE tbl_name QUICK;
person ajreal    schedule 31.01.2011