我已在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"
}
}
}
}
}
但是,当我单独查询文档时,返回了正确的结果。为什么会这样?父路由是否应该能够使用父字段使用子节点来识别结果?
答案 0 :(得分:0)
当子项被编入索引时,其“_parent”字段应该包含父项的id(而不是父类型,因为它似乎是你的情况)。