Solr - индексирование продуктов с атрибутами в виде пары ключ / значение - PullRequest
2 голосов
/ 25 мая 2011

В настоящее время я занимаюсь разработкой приложения solr для индексации продуктов на нашем веб-сайте электронной коммерции.

Некоторые примеры полей в схеме:

  • ProductID
  • ProductName
  • Описание
  • Цена
  • Категории (многозначные)
  • Атрибуты

Атрибуты представляют собой список пар ключ-значение. Например:

Тип = Роза
Положение = полное солнце
Положение = тень
Цвет = красный

Я собираюсь сохранить поля, чтобы мои страницы могли быть сгенерированы из результатов поиска.

Как лучше всего это представлять?

Я думал о том, чтобы иметь некоторые динамические поля для индексации: атрибут_ * например (атрибут_положение) А затем «атрибут» для сохраненного значения (для возврата, для отображения) - сохранение нескольких полей Значением поля «атрибута» может быть (например) Position | Full Sun - тогда пусть клиент обрабатывает отображение?

Есть ли лучшие способы сделать это?

В качестве сноски - я буду использовать Solrnet в качестве клиента для запросов (вероятно, не актуально)

1 Ответ

2 голосов
/ 25 мая 2011

Во-первых, я бы не рекомендовал хранить весь ваш документ в вашей поисковой системе. Единственное, что вы должны хранить в Solr, это те вещи, по которым вы хотите искать. Да, он поддерживает сохранение большего количества данных, однако использование этого преимущества может вызвать проблемы с размером индекса, временем репликации master / slave и т. Д. В идеале в Solr единственное, что вы хотите найти / отсортировать, и документ Идентификатор, который является уникальным для извлечения данных документа из другого источника, который оптимизирован для хранения .... документов.

Однако, если вы решите проигнорировать этот совет, вы можете легко сохранить свои пары имя-значение в одном поле. Если ваши пары «имя-значение» имеют ограниченный набор символов, вы можете легко объединить пары «имя-значение» в одну строку. Затем разберите их на выходе, когда вы формируете свою веб-страницу для отображения. Нет необходимости придумывать более сложную схему для поддержки этого. Несколько полей для их хранения только увеличат ваши издержки на индекс, что вам ничего не даст.

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