2016-11-03 2 views
0

Say Я индексировать elasticsearch данные следующим образом:Finding который вложен запись соответствует запрос elasticsearch

{"entities": { 

    "type": "firstName", 
    "value": "Barack", 
}, 
{ 
    "type": "lastName", 
    "value": "Obama" 
}} 

Я хотел бы, чтобы пользователи могли добавлять пользовательские атрибуты, так что я не знаю, все возможные значения «типа» раньше времени.

Мои отображения может выглядеть следующим образом:

typename: 
    entities: 
     type: nested 

Если я сделать запрос соответствия для текста «Обамы», с подсветкой, есть способ, чтобы получить обратно полную вложенную «сущность», чье соответствие? Я хотел бы узнать, соответствует ли мой запрос для «Обамы» первому или последнему.

+0

'inner_hits' дает вложенные документы, совпавшие (спасибо Андрею!): Https://www.elastic.co/guide/en/elasticsearch/ ссылка/2,4/поиск-запрос-внутренн-hits.html –

ответ

0

я был в состоянии решить эту проблему с inner_hits

{ 
    "query": { 
     "nested": { 
      "query": { 

       {"match": {"entities.name": "Obama"}} 

      } 
     }, 
     "inner_hits": { 
      "highlight": { 
      "fields": { 
       "entities.name": {} 
       } 
      } 
     } 
    } 
} 
Смежные вопросы