Полнотекстовый поиск MySQL с апострофом не дает ожидаемого результата

Я использую MySQL 5.6.24 с InnoDB и пытаюсь реализовать полнотекстовый поиск. У меня есть список названий ресторанов, и тестирование, казалось, работало хорошо, пока я не попробовал следующее.

SELECT * FROM table WHERE MATCH(name) AGAINST ('grill\'d' IN BOOLEAN MODE)

У меня есть ресторан под названием Grill’d в базе данных, написанный именно так (с апострофом). У меня также есть много ресторанов в таблице со словом Гриль в названии. Поиск возвращает и Grill’d, и все те, у кого Grill в заголовке. Это не было бы так плохо, если бы это придало Грилю более высокую актуальность, но это не так.

При дальнейшем расследовании может показаться, что \ ‘заменяется пробелом, так как поисковый «стейк-хаус» возвращает все имена, которые включают слово «стейк» или «дом», но НЕ «стейк-хаус».

Может кто-нибудь дать какой-нибудь совет по этому поводу, но, возможно, что более важно, как я получу только что Гриль вернулся в результате.

ОБНОВИТЬ

» p \ ‘tite * «‘ действительно находит P’tite (ОК)

» p \ ‘tit * «‘ НЕ находит P’tite (почему бы и нет?)

‘p \’ ti * ‘действительно находит P’tite, но также находит Тигра, Тима и т. д. (почему он должен найти только P’tite?)

«p \ ‘ti *» действительно находит P’tite, но также находит Тигра, Тима и т. д. (почему?)

«p’ti *» действительно находит P’tite, но также находит Тигра, Тима и т. д. (почему?)

Какой-нибудь совет по разделителям и групповым символам?

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]