我已经将索引和导入的数据创建到索引中,但没有映射。我的数据有一个“geolocatoin”:“lat,lng”。现在我想基于地理位置运行地理空间查询。所以我使用以下curl命令将提交的地理位置映射到地理点:
curl -XPUT 'http://localhost:9200/index/place/_mapping?ignore_conflicts=true' -d '
{
"place" : {
"properties" : {
"geolocation" : { "type" : "geo_point" }
}
}
}'
我得到{"acknowledged":true}
作为回复。
但是当我尝试运行地理空间查询时,它会抛出错误
field [geolocation] is not a geo_point field];
因此。我是否在映射后重新索引。但是重建索引是不可能的,因为它是一个庞大的数据集。我怎样才能做到这一点。请分享您的想法......
答案 0 :(得分:1)
我认为在映射某些映射类型后必须重新索引。您可以尝试编写脚本来更新所有文档,以便将旧字段移动到具有良好映射的新字段。
如果您的索引用于制作,您可以尝试为当前索引创建别名,并在程序中使用它。您创建了一个具有良好映射的新索引,在重新索引之后,您可以在索引上切换别名。