我有以下弹性搜索索引my-test-index
,文档按以下类型分组:
所有者
{
"_index": "my-test-index",
"_type": "owner",
"_id": "AV4GXRQmXr6DxJJbKJTy",
"_source": {
"owner": "Jane",
"pet": "cat",
"city": "NYC"
}
},
{
"_index": "my-test-index",
"_type": "owner",
"_id": "AV4GXRQmXr6DxJJbKJT0",
"_source": {
"owner": "Jason",
"pet": "snake",
"city": "Boston"
}
},
{
"_index": "my-test-index",
"_type": "owner",
"_id": "AV4GXRQmXr6DxJJbKJTz",
"_source": {
"owner": "Jack",
"pet": "dog",
"city": "NYC"
}
},
和输入:
{
"_index": "my-test-index",
"_type": "type",
"_id": "AV4GXXuyXr6DxJJbKJUU",
"_source": {
"pet": "snake",
"type": "reptile"
}
},
{
"_index": "my-test-index",
"_type": "type",
"_id": "AV4GXXuyXr6DxJJbKJUT",
"_source": {
"pet": "dog",
"type": "mammal"
}
},
{
"_index": "my-test-index",
"_type": "type",
"_id": "AV4GXXuyXr6DxJJbKJUS",
"_source": {
"pet": "cat",
"type": "mammal"
}
},
{
"_index": "my-test-index",
"_type": "type",
"_id": "AV4GXXuyXr6DxJJbKJUW",
"_source": {
"pet": "penguin",
"type": "bird"
}
},
{
"_index": "my-test-index",
"_type": "type",
"_id": "AV4GXXuyXr6DxJJbKJUV",
"_source": {
"pet": "parrot",
"type": "bird"
}
}
我想知道每个主人有哪些宠物类型。例如,简有一只哺乳动物,因为她的猫是“哺乳动物”。如何在Elastic Search中编写查询以检索此信息?或者,如果在单个查询中无法实现此目的,我该如何执行以下步骤?
my-test-index
my-test-index/type
答案 0 :(得分:0)
如果您在所有者文档中包含该类型,则此woudl是一个简单的术语聚合,其中包含对所有者进行过滤的查询。您也可以考虑父/子,但如果解决方案是在文档中添加单个字段,我会尝试这样做并保持简单。