Ниже приведен пример sql, за которым я застрял, он не вернется в отель под названием «мельничный отель». Он возвращает еще 10 отелей. Любая помощь будет большой благодарностью
SELECT * FROM tbl WHERE match(hotel) against('the mill hotel' IN BOOLEAN MODE) LIMIT 10";
Вам нужно указать операторы, поскольку не указывать никаких результатов в операции ИЛИ. Попробуй это:
SELECT * FROM tbl WHERE match(hotel) against('+the mill hotel' IN BOOLEAN MODE) LIMIT 10";
Прочитайте больше
Вы всегда можете использовать кавычки в соответствии с фразой mill hotel
а не словами mill
и / или hotel
:
SELECT * FROM tbl WHERE match(hotel) against('"the mill hotel"' IN BOOLEAN MODE) LIMIT 10;
или просто:
SELECT * FROM tbl WHERE match(hotel) against('"mill hotel"' IN BOOLEAN MODE) LIMIT 10;
Я считаю, что все
SELECT * FROM tbl WHERE match(hotel) against('+the mill hotel' IN BOOLEAN MODE) LIMIT 10;
требуется слово the
совпадение», оставляя mill
и hotel
как необязательные: если вы хотите потребовать всю фразу, она должна быть в кавычках:
SELECT * FROM tbl WHERE match(hotel) against('+"the mill hotel"' IN BOOLEAN MODE) LIMIT 10;
хотя, когда у вас есть только одна фраза, как в этом примере, знак плюса лишний.
Используйте + (plus)
в таком случае …
SELECT * FROM tbl WHERE match(hotel) against ('+the mill hotel' IN BOOLEAN MODE) LIMIT 10";
Прочтите это для подробной информации.
12.9.2 Логические полнотекстовые поисковые запросы
MySQL может выполнять логические полнотекстовые поиски с использованием модификатора IN BOOLEAN MODE.
Логические полнотекстовые поисковые запросы имеют следующие характеристики:
12.9.1 Полнотекстовые поиски на естественном языке
По умолчанию или с модификатором IN NATURAL LANGUAGE MODE функция MATCH () выполняет поиск на естественном языке строки в текстовой коллекции. Коллекция представляет собой набор из одного или нескольких столбцов, включенных в индекс FULLTEXT. Строка поиска дается как аргумент для AGAINST (). Для каждой строки таблицы MATCH () возвращает значение релевантности; то есть мера подобия между строкой поиска и текстом в этой строке в столбцах, названных в списке MATCH ().
Таким образом, вам необходимо отсортировать или удалить ограничение по вашим результатам.