Множественный поиск / единственное число в SQL

mysql full-text-search

4306 просмотра

3 ответа

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

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

Автор: JD Isaacks Источник Размещён: 12.11.2019 09:39

Ответы (3)


5 плюса

Решение

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

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

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

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

ОБНОВИТЬ:

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

Автор: Abe Miessler Размещён: 21.06.2010 09:05

3 плюса

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

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

Автор: the_void Размещён: 21.06.2010 09:26

1 плюс

select * from index_table where item_name rlike '[[:<:]]preform[s]*[es]*[ies]*[[:>:]]';

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

Ура, Ашиш

Автор: Ashish Размещён: 14.05.2014 07:24
Вопросы из категории :
32x32