Множественный поиск / единственное число в SQL - PullRequest
3 голосов
/ 22 июня 2010

Как сделать так, чтобы множественные / единственные слова заполняли все формы?

Пример: если человек ищет "мужские кольца", как я могу проверить базу данных, чтобы узнать, содержит ли какое-либо из полей мужское, мужское, мужские, кольца, кольца и т. д.? 1003 *

Ответы [ 3 ]

5 голосов
/ 22 июня 2010

Не похоже, что использование LIKE будет лучшим подходом для того, что вам нужно.Я хотел бы изучить индексацию MySQL FULLTEXT, чтобы получить базовую функциональность.Мне нужно больше взглянуть на множественное число, чтобы увидеть, можно ли это сделать.

Взгляните на эти две ссылки для получения информации по индексации FULLTEXT.

Вот фрагмент из второй статьи:

SELECT headline, story FROM news
WHERE MATCH (headline,story) AGAINST ('Hurricane');

ОБНОВЛЕНИЕ:

Я нашел этот пост SO , в котором, как представляется, комментарий предполагает, что при индексации FULLTEXT будут учитываться множественные и грамматические формы, но он не цитирует источникмне трудно сказать наверняка.Можете ли вы попробовать метод индексации FULLTEXT?

3 голосов
/ 22 июня 2010

поисковая система Sphinx full-text для MySQL обрабатывает такие случаи и некоторые другие (см. здесь ).

Он использует алгоритм Портера Стеммера [2] [3] для отображения таких вещей, как "лов", "вылов", "рыба" и «рыбак» к корню стебля «рыбы» (см. wiki ).

1 голос
/ 14 мая 2014
select * from index_table where item_name rlike '[[:<:]]preform[s]*[es]*[ies]*[[:>:]]';

Проверьте, помогает ли это. В моем случае это сработало. Хотя не распространяется на все множественное число, но да для 90-95% случаев.

Ура, Ashish

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...