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

Я просматривал блог Йоника. Я использую solr 5.3.0, и у меня есть сценарий, который я пытаюсь решить. Любая помощь будет оценена по достоинству.

Обобщая пример Йоника:

Старый документ:

{
  product_name : "Awesome T-Shirt",
  category : "Clothing",
  color : [ "Red", "Blue"],
  size : [ "L", "M", "XL" ]
}

Родитель:

{
  product_name : "Awesome T-Shirt",
  category : "Clothing",
}

Вложенные дочерние элементы:

{
  color : "Red",
  size : "L",
  quantity: 2
}
{
  color : "Blue",
  size : "M",
  quantity: 3
}
{
  color : "Blue",
  size : "L",
  quantity: 0
}
{
  color : "Red",
  size : "L",
  quantity: 0
}
{
  color : "Red",
  size : "XL",
  quantity: 1
}

Подсчитываем несколько сценариев: 1) Если я поставлю фильтр по цвету: Красный и по размеру: L, я получу только дочерние документы. Возможно ли получить родительские поля в ответ (поскольку у меня есть несколько продуктов с цветом: красный и размером: L).

2) Если я ищу цвет: красный и количество больше 0, я получаю несколько документов, в то время как этот поиск нужен только для того, чтобы проверить, доступен ли элемент красного цвета. Хотя group by - это работа, есть ли другой способ.


person Om Prakash    schedule 15.09.2015    source источник


Ответы (2)


Если вы хотите получить parent documents с child documents, я бы сделал следующее:

/select?q=id:<parent id>
&fq=type:<parent type>
&fl=*,[child parentFilter="type:<parent type>" limit=10]

он вернет такую ​​структуру:

{
"type":"<parent type>",
....
"_childDocuments_":[{
<doc>..</doc>
...
<doc>..</doc>
}]
}

количество дочерних документов ограничено limit=10, вы, конечно, можете изменить это, но по умолчанию 10 :)

person Mihkel L.    schedule 16.10.2015

Я думаю, что парсеры объединения блоков Solr предоставят вам то, что вам нужно:

Заблокировать присоединение

person Bereng    schedule 16.09.2015
comment
Спасибо за ответ. Я хоть и пробовал, но не получаю желаемого результата. Можете ли вы привести пример запроса для вышеуказанного сценария? - person Om Prakash; 16.09.2015