Стоп-слова и MySQL логический полный текст - PullRequest
4 голосов
/ 31 января 2011

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

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

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

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

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

Travis

Ответы [ 2 ]

3 голосов
/ 01 апреля 2012

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

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

SELECT * FROM table WHERE column REGEXP 'searchterm'

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

0 голосов
/ 31 января 2011

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

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

Тем не менее, это не вредно, чтобы проверить с вашим поставщиком услуг хостинга ...

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

mysql> REPAIR TABLE tbl_name QUICK;
...