我已将许多geo_shapes编入索引,这些geo_shapes是各个国家/地区的边界。映射是这样的:
{
"mappings": {
"country": {
"properties": {
"border": {
"type": "geo_shape"
}
}
}
}
}
我还有很多索引点被映射为:
{
"mappings": {
"point": {
"properties": {
"location": {
"type": "geo_shape"
}
}
}
}
}
点的一个例子是这样的:
{
"location": {
"type": "point",
"coordinates": [30.706049, 6.264897]
},
"a": "a"
}
"a"
仅用于计算,因为我无法使用value_count聚合来计算"location"
。
我知道我可以算上这样一个国家的分数:
{
"size": 0,
"query": {
"geo_shape": {
"location": {
"relation": "within",
"indexed_shape": {
"index": "geo",
"type": "country",
"id": "Austria",
"path": "border"
}
}
}
},
"aggs": {
"Austria": {
"value_count": {
"field": "a"
}
}
}
}
有没有办法让查询获取所有积分,与国家匹配,然后计算每个国家/地区的积分,或者我是否为每个国家/地区单独提出请求?