Соль гранит на уникальные значения полей - PullRequest
2 голосов
/ 18 августа 2010

У меня есть структура документа в Solr, которая выглядит примерно так (не относящиеся к делу поля исключены):

<field name="review_id" type="int" indexed="true" stored="true"/>
<field name="product_id" type="int" indexed="true" stored="true"/>
<field name="product_category" type="string" indexed="true" stored="true" multiValued="true"/>

product_id здесь один-ко-многим по review_id

Я могу получитьфасетное количество отзывов в каждой категории, выполнив:

/select?q=*:*&rows=0&facet=true&facet.field=product_category

Я хочу иметь возможность выполнять фасетирование в категории product_category, но получить количество различных product_id: s вместо числа review_id: s.Можно ли это сделать в Solr?

1 Ответ

0 голосов
/ 18 августа 2010

В индексе Solr нет ни одного ко многим.Это не реляционная база данных.Индекс либо о обзорах или о продуктах, и это зависит от того, что вы будете искать.Цитируя Solr wiki о дизайне схемы :

Solr предоставляет одну таблицу.Хранение набора таблиц базы данных в индексе обычно требует денормализации некоторых таблиц.Попытки избежать денормализации обычно терпят неудачу.

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

...