Elasticsearch получает доступные фасетки фильтра - PullRequest
0 голосов
/ 09 июня 2019

Я использую эластичный поиск на страницах с перечнем товаров и страницами поиска товаров для своего сайта электронной коммерции.Теперь вы хотите использовать эластичный поиск в фильтрации.При этом я могу принести соответствующие результаты в соответствии с моими фильтрами, но я не могу предоставить соответствующие элементы фильтра для конечного пользователя для результатов, которые я принес.Например;На моей странице перечисления продуктов есть 5 товаров 5 разных размеров и марок.Основываясь на этих 5 результатах продукта, я хотел бы получить список фильтров с соответствующими спецификациями бренда и размера.

Пример документа списка результатов эластичного поиска:

"_source" : {
  "name" : "Product 1",
  "manufacturer" : {
    "manufacturer_id" : 1,
    "manufacturer_name" : "Brand 1"
  },
  "attribute" : [
    {
      "attribute_id" : 1,
      "text" : "Other product attribute"
    },
    { // I want this array
      "attribute_id" : 2,
      "text" : "Size product attribute (L)"
    }
  ]
}

"_source" : {
  "name" : "Product 2",
  "manufacturer" : {
    "manufacturer_id" : 2,
    "manufacturer_name" : "Brand 2"
  },
  "attribute" : [
    {
      "attribute_id" : 1,
      "text" : "Other product attribute"
    },
    { // I want this array
      "attribute_id" : 2,
      "text" : "Size product attribute (XL)"
    }
  ]
}

Согласно этому сопоставлению, естьбудет 5 разных серий продукции и производителя.Как я могу получить их следующим образом?

"facets" : {
  "manufacturers" : [
    {
      "manufacturer_id" : 1,
      "manufacturer_name" : "Brand 1",
      "count" : 1
    },
    {
      "manufacturer_id" : 2,
      "manufacturer_name" : "Brand 2",
      "count" : 1
    }
  ],
  "attributes" : [
    { // I want this array
      "attribute_id" : 2,
      "text" : "Size product attribute (L)",
      "count" : 1
    },
    { // I want this array
      "attribute_id" : 2,
      "text" : "Size product attribute (XL)",
      "count" : 1
    }
  ]
}

Заранее спасибо за вашу поддержку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...