У меня проблема с полнотекстовым поиском, который позволяет пользователю вводить: -
- несколько условий поиска
- несколько частичных условий
- условия поиска сапострофы
- условия поиска без апострофов
У меня поиск работает для всех, кроме одного экземпляра - когда пользователь вводит частичное условие поиска или полное условие поиска без апострофа.
В базе данных есть данные, сохраненные с помощью Bishop's Stafford (с апострофом) и Bishops Stafford (без апострофа) * 1016 *, и мне нужно получить все записи при поиске имени.
Для названия места Bishop's Stafford, hotel, suite
Если пользовательские ключи в Bishop's S, hotel, suite или любой другой версии Bishop's Stafford, содержащие апостроф - поиск будет работать
USE `waf-bit`;
SELECT townDetails FROM town_overview
WHERE MATCH(townDetails) against('+Bishop\'s S* +hotel +suite' IN BOOLEAN MODE)
OR MATCH(townDetails) against('+Bishops S* +hotel +suite' IN BOOLEAN MODE)
ORDER BY townDetails ASC LIMIT 50 OFFSET 0
Если, однако, пользовательские ключи в отеле Bishops S, люксе или любой другой версии Bishops Stafford без апострофа - поиск не будетрк, он не найдет версию Bishop's Stafford с апострофом.
USE `waf-bit`;
SELECT townDetails FROM town_overview
WHERE MATCH(townDetails) against('+Bishops S* +hotel +suite' IN BOOLEAN MODE)
OR MATCH(townDetails) against('+Bishops S* +hotel +suite' IN BOOLEAN MODE)
ORDER BY townDetails ASC LIMIT 50 OFFSET 0
Я не хочу использовать LIKE
, так как набор данных слишком большой, я могу создать таблицу перекрестных ссылок, которая быукажите, какие географические названия содержат апострофы, но если я могу исправить это в самом поиске, это предпочтительный вариант.
Любая помощь будет принята с благодарностью.