MySQL MATCH-ПРОТИВ множественного числа слов? - PullRequest
0 голосов
/ 30 апреля 2011

Я бы хотел добавить поиск на свой сайт.У меня есть база данных вызовов от видеоигры.Каждая задача имеет заголовок и описание, я хотел бы иметь возможность искать хотя бы описание, но оба, если это возможно.Теперь я настроил таблицу так, чтобы я мог использовать MATCH () AGAINST (), но у меня проблема со словами, которые могут быть как единственного, так и множественного числа.

Например, слово "Assists "появляется в нескольких задачах, но если пользователь вводит" Assist ", он ничего не получит.Есть ли способ, которым я могу добавить эту функциональность?Я перепробовал все, что мог придумать, но пока ничего не получалось.

Обновление: Я только недавно узнал о МАТЧЕ ПРОТИВ, поэтому я не уверен, что "правильно"способ использовать его в моем случае.Как я уже сказал, у меня есть таблица со столбцом с именем description, использующая приведенное выше примерное слово assists, которое встречается в таблице несколько раз. Я бы использовал этот запрос:

SELECT * FROM challenges WHERE MATCH(description) AGAINST('assists')

Я только что выполнил это, и он возвратил 10 строк.Если я изменю его на assist, я ничего не получу.

Ответы [ 2 ]

0 голосов
/ 01 мая 2011

Возможно, я упускаю суть того, что вы пытаетесь сделать, но почему бы просто не сделать ЛАЙК, как это:

SELECT * FROM challenges WHERE description LIKE "%assist%";

Это будет соответствовать всему, что содержит «вспомогательные средства», а также «вспомогательные средства». Конечно, это также будет соответствовать «помощник» и «помощь», что может быть не то, что вы хотите ...

0 голосов
/ 30 апреля 2011

Может быть, вы можете использовать функцию SOUNDEX () из MySQL.

SELECT
  id,
  title
FROM products AS p
WHERE p.title SOUNDS LIKE 'Shaw'

// This wil match 'Saw' etc.

Я думаю, что это также может быть применимо для вас и что он будет принимать с множественным числом

...