Как сгруппировать значения вложенных объектов в Solr? - PullRequest
0 голосов
/ 03 апреля 2019

Я настраиваю сервер Solr для приложения электронной коммерции.Я кормить некоторые основанные на продукте данные из MySQL.Существует столбец для атрибутов товара в формате JSON (например, цвет, размер, категория и т. Д.).Эти атрибуты могут отличаться для каждого продукта.Если пользователь ищет определенный товар, мне нужно указать, какие атрибуты доступны, сгруппировав их.

Я пробовал этот аспект для группировки атрибутов размера и цвета, но получил пустой результат

curl http://localhost:8983/solr/product/query -d 'q=category:Bat& json.facet=
{
   color:{  
  domain:{blockChildren:"sport:Cricket"},     
  type:terms,
  field:brand,
        limit:-1,
  facet:{                           
     productsCount:"uniqueBlock(_root_)"
  }
   },   
   size:{  
  domain:{blockChildren:"sport:Cricket"},     
  type:terms,
  field:category,
        limit:-1,
  facet:{                           
     productsCount:"uniqueBlock(_root_)"
  }
   }
}'

Это формат данных на моем сервере Solr

  {
  "responseHeader":{
    "status":0,
    "QTime":0,
    "params":{
      "q":"*:*",
      "rows":"5",
      "_":"1554295310310"}},
  "response":{"numFound":27648,"start":0,"docs":[
      {
        "sport":["Cricket"],
        "ProductSearch":["Cricket",
          "Glove",
          "Cricket",
          "Adidas"],
        "id":"1",
        "quantity":"13",
        "_version_":1629796764691202048,
        "name":"Cricket",
        "category":"Glove",
        "brand":"Adidas",
        "specifications":"{\"id\": 1, \"Size\": \"S\", \"Type\": \"Batting Glove\"}"},
      {
        "sport":["Cricket"],
        "ProductSearch":["Cricket",
          "Pad",
          "Cricket",
          "Nivia"],
        "id":"2",
        "quantity":"54",
        "_version_":1629796764715319296,
        "name":"Cricket",
        "category":"Pad",
        "brand":"Nivia",
        "specifications":"{\"id\": 2, \"Size\": \"S\", \"Type\": \"Batting Glove\"}"},
      {
        "sport":["Cricket"],
        "ProductSearch":["Cricket",
          "Bat",
          "Cricket",
          "Adidas"],
        "id":"3",
        "quantity":"48",
        "_version_":1629796764716367872,
        "name":"Cricket",
        "category":"Bat",
        "brand":"Adidas",
        "specifications":"{\"id\": 3, \"Size\": \"S\", \"Cover\": \"Without Cover\", \"Age Group\": \"5-8 Years\", \"Bat Grade\": \"B\", \"Willow Type\": \"Kashmir Willow\", \"Playing Level\": \"Intermediate\"}"},
      {
        "sport":["Batminton"],
        "ProductSearch":["Batminton",
          "Racket",
          "Batminton",
          "Butterfly"],
        "id":"4",
        "quantity":"58",
        "_version_":1629796764717416448,
        "name":"Batminton",
        "category":"Racket",
        "brand":"Butterfly",
        "specifications":"{\"id\": 4, \"Grip Size\": \"Short grip\", \"Ideal For\": \"Women\", \"Cover Type\": \"Halfly Covered\", \"Strung Type\": \"With Strung\", \"Playing Level\": \"Intermediate\"}"},
      {
        "sport":["Cricket"],
        "ProductSearch":["Cricket",
          "Gaurd",
          "Cricket",
          "MRF"],
        "id":"5",
        "quantity":"50",
        "_version_":1629796764717416449,
        "name":"Cricket",
        "category":"Gaurd",
        "brand":"MRF",
        "specifications":"{\"id\": 5, \"Size\": \"S\", \"Type\": \"Batting Glove\", \"Ideal For\": \"Women\"}"}]
  }}

(Ех). Если пользователь ищет крикетную биту, тогда мне нужно использовать фильтр, как показано ниже

Brand
  Adidas(5)
  DSC(3)
  Puma(19),
Size
  Size-S(4)
  Size-M(20)
  Size-L(30)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...