Стратегия структурирования поискового индекса в реляционной базе данных - PullRequest
0 голосов
/ 17 июня 2010

Меня интересуют предложения по созданию эффективной и надежной структуры для индексации продуктов в новой базе данных, которую я создаю (я использую MySql)

Когда товар вводится через форму, меня интересуют три части для поиска.

  1. Название продукта
  2. Описание товара
  3. Метки

Наиболее важным является заголовок, за которым следуют теги и описание.

Я думал об использовании следующей структуры

CREATE TABLE `searchindex` (
`id` INT NOT NULL ,
`word` VARCHAR( 255 ) NOT NULL ,
`weighting` INT NOT NULL ,
`product_id` INT NOT NULL ,
PRIMARY KEY (  `id` )
)

Затем каждый раз, когда создается продукт, я разделяю заголовок, описание и теги (удаляя общие слова) и присваиваю им весовые коэффициенты.

Тогда тривиально выбрать слова и соответствующие продукты и упорядочить их по весу.

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

1 Ответ

1 голос
/ 17 июня 2010

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

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