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

mysql full-text-search

4306 просмотра

3 ответа

27885 Репутация автора

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

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

Автор: JD Isaacks Источник Размещён: 21.06.2010 08:52

Ответы (3)


5 плюса

55674 Репутация автора

Решение

Не похоже, что использование 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 плюса

5033 Репутация автора

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

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

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

1 плюс

327 Репутация автора

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

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

Ура, Ашиш

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