Сценарий:
У меня есть следующий (упрощенный) сценарий таблицы базы данных:
ID ProductName ProductCategory Colour Price
----------------------------------------------------------
1 BatmanTShirt T-Shirt Black 22
2 BatmanTShirt T-Shirt Blue 20
3 SupermanTShirt T-Shirt Blue 19
4 SpidermanTrousers Trousers Red 28
5 SpidermanTrousers Trousers Black 30
Мое желание:
В индексе SOLR мне бы хотелось, чтобы эти данные отображались нормализованным образом, чтобы вместо 5 создавались только 3 документа SOLR (как показано ниже).
<doc1>
<ID>1</ID>
<ProductName>BatmanTShirt</ProductName>
<ProductCategory>T-Shirt</ProductCategory>
<OtherDetails>{ {1, Black, 22}, {2, Blue, 20} }</OtherDetails>
</doc1>
<doc2>
<ID>3</ID>
<ProductName>SupermanTShirt</ProductName>
<ProductCategory>T-Shirt</ProductCategory>
<OtherDetails>{ {3, Blue, 19} }</OtherDetails>
</doc2>
<doc3>
<ID>4</ID>
<ProductName>SpidermanTrousers</ProductName>
<ProductCategory>Trousers</ProductCategory>
<OtherDetails>{ {4, Red, 28}, {5, black, 30} }</OtherDetails>
</doc3>
НекоторыеПримечания:
<ID>
будет содержать минимальный идентификатор из группы <OtherDetails>
будет содержать уникальный идентификатор, а также другие данные, которые не учитываются при группировке.Это будет многозначное поле с типом данных List, содержащим другой список деталей {ID, Color, Price}.
Вопрос:
Anyoneзнает, как это возможно?
PS
Причина, по которой следует выполнить этот групповой ход, заключается в том, что я хочу обратить внимание на категорию продуктов.Если я использую фасетирование в ProductCategory, то в настоящее время генерируемые значения будут:
T-Shirt (3)
Trousers (2)
Теперь я хочу получить фасет в ProductCategory без данных о цвете и цене, чтобы у меня было только 2 футболки (один из Бэтмена и один из Супермена) и только 1 Брюки (Spiderman's).Поэтому я хочу показать следующее:
T-Shirt (2)
Trousers (1)
Я провел некоторое исследование и обнаружил, что в настоящее время эта функция (которая называется фасеткой после групп или счетчиками матриц) в настоящее время WIP, как отмечено в этот SOLR патч .Поэтому я хочу временный обходной путь, так как это может занять некоторое время.