Запрос Elasticsearch для разных значений с несколькими условиями

Я хочу выполнить следующие действия в elasticsearch.

выберите отдельное имя, город от студентов, где класс = 10 и возраст = 15;

и он должен возвращать все различные значения имени и города. Как это сделать?


person stackmj18    schedule 02.06.2020    source источник


Ответы (1)


https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-body.html#request-body-search-collapse. Свертывание поля Здесь должно быть полезно.

{
    "query": { 
    "bool": {
     "must": [
       {"match": 
         {
         "class": 10
         }
       },
       {"match": 
         {
         "age": 15
         }
       }
     ] 
    }
  },
    "collapse" : {
        "field" : "name.keyword" ,
        "inner_hits" : {
          "name": "by_type",
            "collapse" : {"field" : "city.keyword"}
        }
    }, 
    "size": 100
}

Приведенный выше запрос вернет одно имя документа и город после сопоставления с классом и возрастом.

person Ani Guner    schedule 02.06.2020