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

каким будет запрос для извлечения данных с первого уровня при запросе на третьем уровне?

0 ответов

Другие вопросы по тегам