Я создаю небольшую функцию поиска для моего сайта. Я беру запрос моего пользователя, определяю ключевые слова и затем выполняю полнотекстовый поиск MySQL по ключевым словам.
Проблема в том, что MySQL рассматривает основы как буквальные. Вот процесс, который происходит:
- пользователь ищет слово типа "бейсбол"
- мой алгоритм stemming (Портер Стеммер) превращает «бейсбольные мячи» в «бейсбольные»
- fulltext не находит ничего подходящего "basebal", хотя ДОЛЖНЫ быть совпадения для "baseball" и "baseballs"
Как мне сделать эквивалент LIKE 'basebal%' с полным текстом?
EDIT:
Вот мой текущий запрос:
SELECT MATCH (`title`,`body`) AGAINST ('basebal') AS `relevance`,`id` FROM `blogs` WHERE MATCH (`title`,`body`) AGAINST ('basebal') ORDER BY `relevance` DESC