Фасеты Lucene — как обрабатывать StoreID

#lucene #lucene.net

#lucene #lucene.net

Вопрос:

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

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

Комментарии:

1. Не забудьте принять ответ, если он ответил на ваш вопрос.

Ответ №1:

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

В некотором смысле storeid, который должен быть для определенного магазина, — это просто еще один критерий запроса (который вы добавляете за кулисами) для указания, какие продукты интересуют клиента. Это не сильно отличается от того, если бы вы также указали, что интересны только продукты с определенным цветом.