Множественный поиск / единственное число в SQL
4306 просмотра
3 ответа
Как я могу сделать так, чтобы множественные / единственные слова вытягивали все формы?
Пример: если человек ищет «мужские кольца», как я могу проверить базу данных, чтобы узнать, содержит ли какое-либо из полей мужские, мужские, мужские, кольца, кольца и т. Д.?
Автор: JD Isaacks Источник Размещён: 12.11.2019 09:39Ответы (3)
5 плюса
Не похоже, что использование LIKE будет лучшим подходом для того, что вам нужно. Я хотел бы изучить индексацию MySQL FULLTEXT, чтобы получить базовую функциональность. Мне нужно больше взглянуть на множественное число, чтобы понять, можно ли это сделать.
Взгляните на эти две ссылки для получения информации об индексации FULLTEXT.
- http://dev.mysql.com/doc/refman/4.1/en/fulltext-search.html
- http://www.petefreitag.com/item/477.cfm
- http://dev.mysql.com/doc/refman/5.1/en/fulltext-boolean.html
Вот фрагмент из второй статьи:
SELECT headline, story FROM news
WHERE MATCH (headline,story) AGAINST ('Hurricane');
ОБНОВИТЬ:
Я нашел этот пост, в котором, как представляется, комментарий предполагает, что при индексации FULLTEXT будут учитываться множественные и грамматические формы, но он не ссылается на источник, поэтому мне трудно сказать наверняка. Можете ли вы попробовать метод индексации FULLTEXT?
Автор: Abe Miessler Размещён: 21.06.2010 09:053 плюса
Sphinx full-text
поисковая система для MySQL обрабатывает такие случаи, и несколько больше (см здесь ).
Он использует алгоритм Портера Стеммера [2] [3] для отображения таких вещей, как «рыбалка», «вылов», «рыба» и «рыболов», на корневой стержень «рыбы» (см. Вики ).
Автор: the_void Размещён: 21.06.2010 09:261 плюс
select * from index_table where item_name rlike '[[:<:]]preform[s]*[es]*[ies]*[[:>:]]';
Проверьте, помогает ли это. В моем случае это сработало. Хотя не будет охватывать все множественное число, но да для 90-95% случаев.
Ура, Ашиш
Автор: Ashish Размещён: 14.05.2014 07:24Вопросы из категории :
- mysql Двоичные данные в MySQL
- mysql Насколько большой может быть база данных MySQL до того, как производительность начнет снижаться
- mysql Выбрать все столбцы, кроме одного в MySQL?
- mysql MySQL или PDO - каковы плюсы и минусы?
- mysql Как выбрать n-ую строку в таблице базы данных SQL?
- mysql MyISAM против InnoDB
- mysql Обмен значениями столбца в MySQL
- mysql Есть ли способ увидеть ход выполнения инструкции ALTER TABLE в MySQL?
- mysql MySQL Error 1093 - Can't specify target table for update in FROM clause
- mysql Как я могу предотвратить SQL-инъекцию в PHP?
- full-text-search Что такое полнотекстовый поиск против LIKE
- full-text-search Инструменты для поиска строк внутри файлов без индексации
- full-text-search Есть ли чистый Python Lucene?
- full-text-search Как я могу управлять релевантностью полнотекстового поиска MySQL, чтобы сделать одно поле более «ценным», чем другое?
- full-text-search Ошибка MySQL: «Столбец столбца» не может быть частью индекса FULLTEXT »
- full-text-search Искать "полное совпадение слов" в MySQL
- full-text-search Алгоритм быстрее, чем BMH (Бойер – Мур – Хорспул) Поиск
- full-text-search MySQL полный текст с основами
- full-text-search Django MySQL полнотекстовый поиск
- full-text-search Обоснование полнотекстовых стоп-слов MySQL