mysql соответствует ~ примеру

Ниже приведен пример 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 ().

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