Как получить все имена полей с критериями фильтрации(или запроса) в ElasticSearch?

#elasticsearch #kibana #elastic-stack #elasticsearch-5 #elasticsearch-7

Вопрос:

 PUT /test-product
{
  "mappings": {
    "properties": {
      "profile": {
        "type": "nested"
      },
      "product": {
        "type": "nested"
      }
    }
  }
}
 

у меня есть индекс, который называется «тестовый продукт»

 POST /test-product/_bulk
{ "index" : { "_id" : "1" } }
{ "user":"1", "profile":{"name":"AA", "age": "11", "height": "30"}, "product": {"price": "333", "name": "test", "weight": "10"} }
{ "index" : { "_id" : "2" } }
{ "user":"2", "profile":{"name":"BB", "age": "20"}, "product": {"name": "test"}}
 

и в этом индексе есть некоторые документы

Я хочу получить результаты, как показано ниже….

Случай 1. когда я ищу пользователя: 1

profile.name, профиль.возраст, профиль.рост, товар.цена, product.name, продукт.вес

Случай 2. когда я ищу пользователя: 2

profile.name, профиль, возраст, product.name

Есть ли способ?

Ответ №1:

Я не совсем уверен, каковы ваши требования к данным, но все поля доступны GET <index>/_mapping . Может GET index_name/_mapping?pretty быть, это вам больше подойдет.

Комментарии:

1. Я знаю, но я хочу получить некоторые поля с запросом фильтра. _mapping не может использоваться с запросом фильтра.