MySQL полный текст с основами - PullRequest
4 голосов
/ 14 января 2010

Я создаю небольшую функцию поиска для моего сайта. Я беру запрос моего пользователя, определяю ключевые слова и затем выполняю полнотекстовый поиск MySQL по ключевым словам.

Проблема в том, что MySQL рассматривает основы как буквальные. Вот процесс, который происходит:

  1. пользователь ищет слово типа "бейсбол"
  2. мой алгоритм stemming (Портер Стеммер) превращает «бейсбольные мячи» в «бейсбольные»
  3. 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

Ответы [ 2 ]

6 голосов
/ 14 января 2010

Я думаю, что он будет работать со звездочкой в ​​конце: basebal*. См. Оператор * на этой странице для получения дополнительной информации.

0 голосов
/ 16 июля 2012

См. Эту ссылку. Stemming не установлен по умолчанию в MySQL, но вы можете установить его самостоятельно.

http://oksoft.blogspot.com/2009/05/stemming-words-in-mysql.html

...