【发布时间】:2020-07-16 17:50:38
【问题描述】:
我在处理看似相当基本的用例时遇到了麻烦,但我遇到了 Kibana 的某些限制以及某些地理数据类型的问题。我开始觉得我只是在接近它错误。
我有一个相对较大的 geo_point 类型的点数据集(位置),并构建了地图和仪表板。我现在想添加一个复杂的 AOI。我获取了 shapefile,将其解散,使其成为一个功能而不是多个功能,将其转换为 geojson 并通过 Kibana Maps 功能上传(以创建索引)。然后我将其作为图层可用,并希望只允许选择它,显示工具提示,然后按特征过滤。不幸的是,我随后收到一条错误消息,说这将是一个太大的操作,无法发布到 URL - 我理解,因为 geojson 中有超过 200 万个字符。
相反,我认为我可以根据以下指导以某种方式编写查询:https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-geo-shape-query.html 具有预索引的形状。
但是,允许针对 geo_shape 查询 geo_point 似乎不起作用。 例如
GET /locations_index/_search
{
"query": {
"geo_point": {
"geolocation": {
"relation": "within",
"indexed_shape": {
"index": "aoi_index",
"id": "GYruUnMBfgunZ6kjA8qn",
"path": "coordinates"
}
}
}
}
}
给出以下错误:
{
"error" : {
"root_cause" : [
{
"type" : "parsing_exception",
"reason" : "no [query] registered for [geo_point]",
"line" : 3,
"col" : 18
}
],
"type" : "parsing_exception",
"reason" : "no [query] registered for [geo_point]",
"line" : 3,
"col" : 18
},
"status" : 400
}
我是否需要将我的点索引转换为地理形状而不是地理点?或者有没有更简单的方法? 我注意到以下文档:https://www.elastic.co/guide/en/elasticsearch/guide/current/filter-by-geopoint.html 建议我可以通过 geo_polygon 进行查询,但我看不到任何引用我的预索引形状的方式,而不是在查询中包含大量 JSON(如示例所示) .
谁能指出我(即使是粗略地)正确的方向?
提前致谢。
【问题讨论】:
标签: elasticsearch