Elasticsearch — как получить отфильтрованный ответ, не повреждая ссылки каждого объекта/поля

Итак, предполагая, что у меня есть структура отображения, подобная следующей

{
  "mappings": {
    "users": {
      "properties": {
        "user": {
          "type": "nested" 
        }
      }
    }
  }
}

и я проиндексировал следующее

пользователей/52

 {
    "user": [
        {
            "id": 52,
            "first": "John",
            "last": "Smith",
            "age": 21,
            "school": {
                "name": "STC",
                "location": "Mt LV",
                "District": "Western"
            }
        }
    ]
}

пользователей/57

{
    "user": [
        {
            "id": 57,
            "first": "Alice",
            "last": "White",
            "age": 25,
            "school": {
                "name": "HFC",
                "location": "DEH WLA",
                "District": "Western"
            }
        }
    ]
}

Что, если я хочу получить определенные поля, используя id и не разрушая связь друг с другом.

Для примера

If id == 57

тогда возвращаемая структура должна состоять только из "first","age","school.name","school.District"

{
    "user": [
        {
            "first": "Alice",
            "age": 25,
            "school": {
                "name": "HFC",
                "District": "Western"
            }
        }
    ]
}

Как написать запрос для такого ответа в Elasticsearch?


person Akila Randil    schedule 24.11.2016    source источник
comment
Это должно помочь: stackoverflow.com/questions/31569422/   -  person Val    schedule 24.11.2016


Ответы (1)


Используйте фильтрацию ответов в Elasticsearch. В соответствии с вашим сценарием запрос GET будет выглядеть так: GET /_search?user=57&filter_path=first,age,school.name,school.District

person Damian Perera    schedule 24.11.2016