Как я могу найти лучшее соответствие для таблицы в MySQL DB - PullRequest
0 голосов
/ 29 марта 2011

У меня есть таблица в базе данных mysql (product{id, name, category}), которая состоит из сотен записей.

Теперь добавлен новый продукт с теми же полями, и я хочу найти поля и сопоставить его с другими записями, чтобы я мог найти лучшее соответствие продукта.

Мой вопрос заключается в том, каков наилучший подход к этому, если я буду искать по названию продукта, но что, если с этими именами будет более одного совпадения.

Должен ли я использовать что-то вроде этого

SELECT * FROM table_name WHERE column1 LIKE '%column1%' OR column2 LIKE '%column2%'

Ответы [ 2 ]

0 голосов
/ 29 марта 2011

Вам следует обратить внимание на возможности полнотекстовой индексации MySQL для создания отсортированного по релевантности вывода.Есть несколько постов на эту тему.Смотрите, например, этот пост .

0 голосов
/ 29 марта 2011

Вы ищете функцию "MATCH ()" в MySQL. Это идет с парой предостережений:

  • Для этого требуется полнотекстовый индекс (то есть вы должны использовать MyISAM Engine для этой таблицы)
  • Требуется MySQL> = 5.1

Из руководства:

Когда MATCH () используется в предложении WHERE, как в примере, показанном ранее, возвращаемые строки автоматически сортируются в первую очередь с наибольшей релевантностью.

http://dev.mysql.com/doc/refman/5.5/en/fulltext-natural-language.html

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