Elasticsearch查询计算geo_shapes中的点数

时间:2015-07-30 14:26:10

标签: elasticsearch

我已将许多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"
      }
    }
  }
}

有没有办法让查询获取所有积分,与国家匹配,然后计算每个国家/地区的积分,或者我是否为每个国家/地区单独提出请求?

0 个答案:

没有答案