MySQL MATCH-ПРОТИВ множественного числа слов?

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

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

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

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

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

2 ответа

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

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

// This wil match 'Saw' etc.

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

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

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

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

Другие вопросы по тегам