无法使用Elasticsearch搜索父文档和子文档?

时间:2013-01-02 10:39:25

标签: elasticsearch

我已在Elasticsearch中为子文档编制索引,如下所示:

{
 _parent: chow-demo
 _index: prototype_2013.01.02
 _type: chow-clfg
 _id: l7jvEgD-SrG-Ws_9ab52IA
 _score: 11.600378
 _source: {
  chow-clfg: {
  @type: chow-clfg
  clfg: Cg5iUlAvU9IIAAAA8Rg
  @timestamp: 2013-01-02T10:15:00.000Z
  count: 1
  }
 }
}

父母至少有2条记录 clfg 作为公共标识符,如下所示:

{
 _index: "prototype_2013.01.02",
 _type: chow-demo, 
 clfg: Cg5iUlAvU9IIAAAA8Rg,
 obid: 97066795
}

但是当我使用“has_child”查询进行查询时,我得不到任何结果:

curl -XGET "localhost:9200:/prototype_2013.01.02/chow-demo/_search"
{
 "query": {
  "has_child": {
   "type": "chow-clfg",
   "query": {
    "term": {
      "clfg": "Cg5iUlAvU9IIAAAA8Rg"
    }
   }
  }
 }
}

但是,当我单独查询文档时,返回了正确的结果。为什么会这样?父路由是否应该能够使用父字段使用子节点来识别结果?

1 个答案:

答案 0 :(得分:0)

当子项被编入索引时,其“_parent”字段应该包含父项的id(而不是父类型,因为它似乎是你的情况)。