Solr Nested Document - получить родителей от ребенка
Это текущий сценарий моего вложенного документа Solr:
Type: Product
-- Type: Category
-- Type: ProductAttribute
-- -- Type: ProductAttributeValue
-- -- Type: ProductAttributeValue
Запрос:
http://localhost:8983/solr/MYCORE/select?q=Type:Product&rows=100&fl=*,[child parentFilter="Type:Product"]
Образец формата данных:
[
{
"id": "p1",
"Path": 1,
"PathNew":"1.Product",
"Type": "Product",
"Title": "Build your own computer",
"ShortDescription": "Build it",
"Price": 1200,
"SKU": "COMP_CUST",
"_childDocuments_": [
{
"id": "c2_p1",
"Path": 2,
"PathNew":"2.Product.Category",
"Type": "category",
"CatName": "Desktops",
"MetaKeywords": "Desktops"
},
{
"id": "pa4_p1",
"Path": 2,
"PathNew":"2.Product.ProductAttribute",
"Type": "productAttribute",
"PAName": "HDD",
"_childDocuments_": [
{
"id": "pav6_pa4_p1",
"Path": 3,
"PathNew":"3.Product.ProductAttribute.ProductAttributeValue",
"Type": "ProductAttributeValue",
"PAVName": "320 GB"
},
{
"id": "pav7_pa4_p1",
"Path": 3,
"PathNew":"3.Product.ProductAttribute.ProductAttributeValue",
"Type": "ProductAttributeValue",
"PAVName": "400 GB"
}
]
},
{
"id": "pa5_p1",
"Path": 2,
"PathNew":"2.Product.ProductAttribute",
"Type": "productAttribute",
"PAName": "OS",
"_childDocuments_": [
{
"id": "pav8_pa5_p1",
"Path": 3,
"PathNew":"3.Product.ProductAttribute.ProductAttributeValue",
"Type": "ProductAttributeValue",
"PAVName": "Vista Home"
},
{
"id": "pav9_pa5_p1",
"Path": 3,
"PathNew":"3.Product.ProductAttribute.ProductAttributeValue",
"Type": "ProductAttributeValue",
"PAVName": "Vista Premium"
}
]
},
{
"id": "pa6_p1",
"Path": 2,
"PathNew":"2.Product.ProductAttribute",
"Type": "productAttribute",
"PAName": "Processor",
"_childDocuments_": [
{
"id": "pav1_pa6_p1",
"Path": 3,
"PathNew":"3.Product.ProductAttribute.ProductAttributeValue",
"Type": "ProductAttributeValue",
"PAVName": "2.2 GHz Intel Pentium Dual-Core E2200"
},
{
"id": "pav2_pa6_p1",
"Path": 3,
"PathNew":"3.Product.ProductAttribute.ProductAttributeValue",
"Type": "ProductAttributeValue",
"PAVName": "2.5 GHz Intel Pentium Dual-Core E2200"
}
]
},
{
"id": "pa7_p1",
"Path": 2,
"PathNew":"2.Product.ProductAttribute",
"Type": "productAttribute",
"PAName": "RAM",
"_childDocuments_": [
{
"id": "pav3_pa7_p1",
"Path": 3,
"PathNew":"3.Product.ProductAttribute.ProductAttributeValue",
"Type": "ProductAttributeValue",
"PAVName": "2GB"
},
{
"id": "pav4_pa7_p1",
"Path": 3,
"PathNew":"3.Product.ProductAttribute.ProductAttributeValue",
"Type": "ProductAttributeValue",
"PAVName": "4GB"
},
{
"id": "pav5_pa7_p1",
"Path": 3,
"PathNew":"3.Product.ProductAttribute.ProductAttributeValue",
"Type": "ProductAttributeValue",
"PAVName": "8GB"
}
]
},
{
"id": "pa9_p1",
"Path": 2,
"PathNew":"2.Product.ProductAttribute",
"Type": "productAttribute",
"PAName": "Software",
"_childDocuments_": [
{
"id": "pav10_pa9_p1",
"Path": 3,
"PathNew":"3.Product.ProductAttribute.ProductAttributeValue",
"Type": "ProductAttributeValue",
"PAVName": "Microsoft Office"
},
{
"id": "pav11_pa9_p1",
"Path": 3,
"PathNew":"3.Product.ProductAttribute.ProductAttributeValue",
"Type": "ProductAttributeValue",
"PAVName": "Acrobat Reader"
},
{
"id": "pav12_pa9_p1",
"Path": 3,
"PathNew":"3.Product.ProductAttribute.ProductAttributeValue",
"Type": "ProductAttributeValue",
"PAVName": "Total Commander"
}
]
}
]
},
{
"id": "p4",
"Path": 1,
"Type": "Product",
"Title": "Apple MacBook Pro 13-inch",
"ShortDescription": "Apple MacBook Pro 13-inch",
"Price": 1200,
"SKU": "AP_MBP_13",
"_childDocuments_": [
{
"id": "c3_p2",
"Path": 2,
"PathNew":"2.Product.Category",
"Type": "category",
"CatName": "Notebooks",
"MetaKeywords": "Notebooks"
},
{
"id": "pa4_p1",
"Path": 2,
"PathNew":"2.Product.ProductAttribute",
"Type": "productAttribute",
"PAName": "HDD",
"_childDocuments_": [
{
"id": "pav6_pa4_p1",
"Path": 3,
"PathNew":"3.Product.ProductAttribute.ProductAttributeValue",
"Type": "ProductAttributeValue",
"PAVName": "320 GB"
},
{
"id": "pav7_pa4_p1",
"Path": 3,
"PathNew":"3.Product.ProductAttribute.ProductAttributeValue",
"Type": "ProductAttributeValue",
"PAVName": "450 GB"
}
]
},
{
"id": "pa5_p1",
"Path": 2,
"PathNew":"2.Product.ProductAttribute",
"Type": "productAttribute",
"PAName": "OS",
"_childDocuments_": [
{
"id": "pav8_pa5_p1",
"Path": 3,
"PathNew":"3.Product.ProductAttribute.ProductAttributeValue",
"Type": "ProductAttributeValue",
"PAVName": "Vista Home"
},
{
"id": "pav9_pa5_p1",
"Path": 3,
"PathNew":"3.Product.ProductAttribute.ProductAttributeValue",
"Type": "ProductAttributeValue",
"PAVName": "Vista Premium"
}
]
}
]
}
]
Запрос на втором уровне получит мой результат так, как мне нужно.
Но я хочу сделать запрос на 3-м уровне и получить данные первого уровня.
Например
http://localhost:8983/solr/MYCORE/select?fq=({!tag=CatTag}{!parent which="Type:Product"}CatName:Desktops,Notebooks)
Возвращает все продукты настольных компьютеров, а также категории ноутбуков
Но если я хочу извлечь данные из ProductAttributeValue объемом 8 ГБ и получить только те продукты, у которых 'RAM' в качестве ProductAttribute и '8 ГБ' в качестве ProductAttributeValue
каким будет запрос для извлечения данных с первого уровня при запросе на третьем уровне?