Вопрос

Например, допустим, у меня есть следующий аспект:

Цвет

  • Красный (7825)
  • Оранжевый (2343)
  • Зеленый (843)
  • Синий (5412)

В моей базе данных цвета были бы таблицей, и каждый цвет имел бы первичный ключ и имя / значение.

При индексации с помощью Solr / Lucene во всех примерах, которые я видел, индексируется значение, а не первичный ключ.Итак, если я отфильтрую по красному цвету, я бы получил что-то вроде следующего:

http://www.example.com/search?color=Red

Мне интересно, разумно ли вместо этого индексировать первичный ключ и извлекать значения из базы данных при отображении значений фасета?Поэтому я бы вместо этого получил что-то вроде этого:

http://www.example.com/search?color=1

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

У кого-нибудь есть какой-нибудь опыт в этом?Как, по-вашему, это повлияет на производительность?

Заранее спасибо!

Это было полезно?

Решение

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

В нашей системе мы индексируем идентификатор Lucene вместо имени объектов, именно по тем причинам, которые вы указали.Кроме того, с нашими объектами связано множество свойств, которые не индексируются, поэтому нам все равно пришлось бы обращаться к базе данных, чтобы получить их.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top