gpt4 book ai didi

amazon-web-services - AWS Elasticsearch:如何将位置{lat:float,lon:float}的映射类型更改为geo_point

转载 作者:行者123 更新时间:2023-12-03 02:36:46 27 4
gpt4 key购买 nike

谁能指导我将位置的 map 类型更改为geo_point。

服务:AWS ElasticSearch(6.2版)
数据库:dynamodb

我正在使用AWS Elastic Search Service根据我的位置过滤值。
根据文档,我创建了一个触发器lambda函数dbtoEs,这是在添加记录索引后不久的python代码。

由于我在dynamodb中的位置类型是
输入位置{
lat: float
lon: float
}

当我转到AWS ElasticSearch并检查索引时,此字段的映射类型也是
位置 {
拉特 float
隆浮
}

根据 flex 地理距离查询(https://www.elastic.co/guide/en/elasticsearch/reference/6.2/query-dsl-geo-distance-query.html),位置的映射类型应为 geo_point

搜索查询过滤器示例

    filter:[ 
{
geo_distance:{
distance:"2000 km",
location:{
lon:77.676,
lat:12.998
},
}
},
{
range:{
createdAt:{
gte:"now-1d/d"
}
}
}
],

搜索响应
 { 
"took":4,
"timed_out":false,
"_shards":{
"total":5,
"successful":4,
"skipped":0,
"failed":1,
"failures":[
{
"shard":4,
"index":"spot",
"node":"*******",
"reason":{
"type":"query_shard_exception",
"reason":"failed to find geo_point field
[location]",
"index_uuid":"**********",
"index":"***"
}
}
]
},
"hits":{
"total":0,
"max_score":null,
"hits":[

]
}
}


**Result Required: Filtered results should be based on location**

最佳答案

您需要在索引第一条记录之前创建映射。如果没有映射,elasticsearch会动态解释类型。在这种情况下,它是 float 的。

寻找用于Elasticsearch的映射API,并使用经纬度为geo_point字段创建映射。

关于amazon-web-services - AWS Elasticsearch:如何将位置{lat:float,lon:float}的映射类型更改为geo_point,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58724697/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com