Solr ChildDocTransformer: получение документов с 3 уровнями вложенности (с условиями на всех 3 уровнях) - PullRequest
0 голосов
/ 30 апреля 2020

BackGround

Привет,

Я проиндексировал следующую схему в моем индексе solr (образец документа представлен ниже)

Детали схемы: The Документ содержит 3 уровня иерархии.

  1. Уровень 1: информация о продукте (сведения о продукте, такие как цвет, марка и т. Д. c.)
  2. Уровень 2: спецификация c SKU продукта (подробности SKU) например, продавец)
  3. Уровень 3: Информация о ценах на артикул за данный интервал времени. (время и информация о цене)
{
   "id":"PRODUCT_0",
   "description":" Desc : blue sparx shirts",
   "color":"blue",
   "category":"shirts",
   "brand":"sparx",
   "type":"product",
   "listings":[
      {
         "id":"LST_0_0",
         "sellerId":"seller_1",
         "type":"listing",
         "timedListingAttributes":[
            {
               "id":"LST_0_0_0",
               "startTime":"2020-05-01T00:00:00Z",
               "endTime":"2020-05-02T00:00:00Z",
               "type":"price",
               "price":100.0
            },
            {
               "id":"LST_0_0_1",
               "startTime":"2020-05-02T00:00:00Z",
               "endTime":"2020-05-03T00:00:00Z",
               "type":"price",
               "price":90.0
            }
         ]
      },
      {
         "id":"LST_0_1",
         "sellerId":"seller_2",
         "type":"listing",
         "timedListingAttributes":[
            {
               "id":"LST_0_1_0",
               "startTime":"1949-05-01T00:00:00Z",
               "endTime":"1949-05-02T00:00:00Z",
               "price":900.0,
               "type":"price",
               "_version_":1665403091131826176/////[;[]]            
            },
            {
               "id":"LST_0_1_1",
               "startTime":"1949-05-02T00:00:00Z",
               "endTime":"1949-05-03T00:00:00Z",
               "price":12.0,
               "type":"price",
               "_version_":1665403091131826176
            }
         ]
      }
   ]
}

Вопрос:

Я хочу все синий продукты (критерии уровня 1), проданные продавец_1 (критерии уровня 2) с ценовой информацией, доступной в течение 2020-05-01T01: 00: 00Z (критерии уровня 3).

Предполагаемый вывод:

{
   "id":"PRODUCT_0",
   "description":" Desc : blue sparx shirts",
   "color":"blue",
   "category":"shirts",
   "brand":"sparx",
   "type":"product",
   "listings":[
      {
         "id":"LST_0_0",
         "sellerId":"seller_1",
         "type":"listing",
         "timedListingAttributes":[
            {
               "id":"LST_0_0_0",
               "startTime":"2020-05-01T00:00:00Z",
               "endTime":"2020-05-02T00:00:00Z",
               "type":"price",
               "price":100.0
            }
         ]
      }
   ]
}

Я пытался сформировать различные шаблоны запросов, используя childDocTransformers для получения необходимых сведений (с правильной иерархией), без любой успех. (попытался настроить атрибут 'childFilter' в [child])

Как извлечь нужную информацию. Любые выводы приветствуются.

...