2016-11-03 63 views
0

说我索引elasticsearch数据,像这样:查找其嵌套条目匹配的elasticsearch查询

{"entities": { 

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

我希望用户能够添加自定义的属性,所以我不知道每一个可能的值提前“类型”。

我的映射可能是:

typename: 
    entities: 
     type: nested 

如果我做文“奥巴马”,以突出显示匹配的查询,有没有办法找回其花色品种嵌套的“实体”?我想知道我的“Obama”查询是否匹配firstName或lastName。

+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": {} 
       } 
      } 
     } 
    } 
}