Я пытаюсь использовать solr для сайта книжного магазина.
У каждой книги будет цена, но в некоторых случаях она будет обесценена.Цена со скидкой существует в течение определенного периода времени, но может быть много периодов скидок.Каждая скидка будет иметь краткий обзор, время начала и окончания.
Подмножество желаемых выходных данных будет выглядеть следующим образом:
.......
"response":{"numFound":1,"start":0,"docs":[
{
"name":"The Book",
"price":"$9.99",
"discounts":[
{
"price":"$3.00",
"synopsis":"thanksgiving special",
"starts":"11-24-2011",
"ends":"11-25-2011",
},
{
"price":"$4.00",
"synopsis":"Canadian thanksgiving special",
"starts":"10-10-2011",
"ends":"10-11-2011",
},
]
},
.........
Требуется наличие возможности поиска только публикаций со скидкой.Я думаю, что я мог бы использовать для этого огранку даты (вернуть публикации, которые находятся в пределах окна скидок).При выполнении поиска со скидкой публикации, не дисконтированные в настоящий момент, не возвращаются.
Мой вопрос:
- Поддерживает ли solr этот тип вложенных документов
В приведенном выше примере скидки являются поддокументами.Я знаю, что solr не является реляционной БД, но я хотел бы сохранить (и проиндексировать) приведенное выше представление в одном документе, если это возможно.
- , что является лучшим способом для достижения вышеупомянутого
Я вижу во многих примерах авторы, как правило, денормализуют для решения подобных проблем.Это говорит о том, что для каждой скидки мне необходимо продублировать данные книги или сформировать документную ассоциацию .Какой метод вы бы посоветовали?
Было бы неплохо, если бы solr мог вернуть структурированный ответ, как указано выше.
Большое спасибо