2016-11-24 5 views
0

Так если предположить, что у меня есть отображение структуры вроде следующего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 и не разрушая связь отношений друг с другом.

Для примера

Если id == 57

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

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

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

+0

Это должно помочь: http://stackoverflow.com/questions/31569422/elastic-search-exclude-index-and-type-from-json-response/31570789 # 31570789 – Val

ответ

0

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