所以我在elasticsearch中的数据看起来像这个整个字典,一个人id等于一个doc,它包含对象列表,如
`{
"dummy_name": "abc",
"dummy_id": "44850642"
}`
如下所示,事情是我在字段dummy_id
上查询,我得到的结果是一些不。匹配查询结果,我想在dummy_id
字段聚合,所以我不会得到特定dummy_id
的文档,但发生了什么,我也得到dummy_id
的桶在查询中未提及的人自身包含dummy_id
所在的对象列表。
`{
"person_id": 1234,
"Properties": {
"Property1": [
{
"dummy_name": "abc",
"dummy_id": "44850642"
},
{
},
{
}
]
}
},
{
"person_id": 1235,
.........
}`
使用以下方式查询Iam:
`{
"query": {
"bool": {
"must": [
{
"match": {
"Properties.Property1.dummy_id": "453041 23234324 124324 "
}
}
]
}
},
"aggregations": {
"group_by_concept": {
"terms": {
"field": "Properties.Property1.dummy_id",
"order": {
"_count": "desc"
},
"size": 10
}
}
}
}`
答案 0 :(得分:0)
即将出现的问题是如何保存数据。 例如,在本文件中
{
"person_id": 1234,
"Properties": {
"Property1": [
{
"dummy_name": "abc",
"dummy_id": "44850642"
},
{
"dummy_name": "dfg",
"dummy_id": "876468"
},
{
}
]
}
}
本文档中生成的令牌将是
所以当您查询dummy_id时:44850642
您将获得该文档,但聚合会聚合与查询匹配的文档生成的术语
因此,你会看到44850642以及876468的桶。
有关elasticsearch如何保存对象列表数据的更多信息,请点击链接 - https://www.elastic.co/guide/en/elasticsearch/reference/current/array.html