Intereting Posts
Передача данных с страницы на bootstrap modal с использованием SQL и PHP Показать pdf на сайте Как я могу правильно использовать объект PDO для параметризованного запроса SELECT Невозможно запросить разрешение на использование Facebook Login API «publish_actions» даже для основного администратора копирование на временную таблицу занимает много времени Как узнать, сколько байтов имеет символ? htaccess 301 перенаправление с запросом У вставки codeigniter вставки_statch () с тысячами вставок нет пропущенных записей Проверка правильного ответа из базы данных с помощью отмеченного переключателя в PHP Возвращать слова до и после первого вхождения строки Выберите результаты, которые будут только между сегодняшним днем ​​и 2 днями в будущем. Включая общий html-заголовок на всех страницах сайта на 20 страницах (с активным классом) Приложение C # должно отправлять некоторые данные на веб-сайт php, но должно уважать политику аутентификации Синтаксическая ошибка Sql с использованием запроса базы данных UPDATE проблема понимания отношения отображения в доктрине 2

Как заставить MySQL рассматривать символ подчеркивания как разделитель слов для полнотекстового поиска?

Я использую MySQL fulltext и PHP (codeigniter) для поиска базы данных, содержащей элементы RSS. Проблема заключается в том, что некоторые из названий этих предметов используют символы подчеркивания вместо пробелов. Поскольку MySQL учитывает подчеркивания как часть слова, эти элементы никогда не будут сопоставлены в поиске, если только пользователь не набирает точный заголовок, включая символы подчеркивания.

Сервер является общим, поэтому у меня нет доступа к системным переменным MySQL Server.

Можно ли изменить это поведение каким-то другим способом? Возможно, это может быть сделано с помощью самого поискового запроса?

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

Solutions Collecting From Web of "Как заставить MySQL рассматривать символ подчеркивания как разделитель слов для полнотекстового поиска?"

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

Вместо того, чтобы заменять символы подчеркивания в исходном поле заголовка, вы можете использовать отдельное поле для полнотекстового поиска.

Это позволяет заменить символы подчеркивания, а также заполнить ключевые слова в этом поле (имена категорий, авторы, теги и т. Д.), Чтобы повысить релевантность результатов поиска. Мы использовали это много раз с успехом для избавления от HTML-тегов в содержании, выводящем поиск

Я не думаю, что это можно сделать без доступа к серверу. Единственный способ, которым я когда-либо видел это, – это первый комментарий на этой странице руководства mySQL («Как я добавил» – «в список символов слова»). Это требует остановки сервера и изменения внутренней конфигурации.

Лучше всего создать второй столбец с удаленными символами подчеркивания и искать его.