elasticsearch 使用Kibana覆盖/更新现有Elasticsearch索引映射(地理点)
我正在尝试更新elasticsearch索引中geo_point字段的映射,但遇到了问题。我正在Kibana中使用开发工具控制台 geo_点的数据采用双数组格式。我将spark与elasticsearch-hadoop-5.3.1.jar一起使用,数据将进入elasticsearch/kibana,但仍然是数字格式,而我需要将其转换为地理点 似乎一旦定义了索引映射,我就无法更新它。我已尝试使用以下方法:
elasticsearch 使用Kibana覆盖/更新现有Elasticsearch索引映射(地理点),
elasticsearch,kibana,
elasticsearch,Kibana,我正在尝试更新elasticsearch索引中geo_point字段的映射,但遇到了问题。我正在Kibana中使用开发工具控制台 geo_点的数据采用双数组格式。我将spark与elasticsearch-hadoop-5.3.1.jar一起使用,数据将进入elasticsearch/kibana,但仍然是数字格式,而我需要将其转换为地理点 似乎一旦定义了索引映射,我就无法更新它。我已尝试使用以下方法: PUT my_index { "mappings": { "my_type":
PUT my_index
{
"mappings": {
"my_type": {
"properties": {
"my_location": {
"type": "geo_point"
}
}
}
}
}
-但这会导致“索引已存在异常”错误
谢谢您的建议。您使用的命令只是尝试使用所提到的映射创建新索引。有关更多信息,请阅读第一个示例中的脚注 根据Elasticsearch文档,无法更新现有字段的映射 更新字段映射 通常,无法更新现有字段的映射。那里 这条规则有一些例外。例如:
- 可以将新属性添加到对象数据类型字段中
- 可以将新的多字段添加到现有字段中
- 可以更新上面的ignore_参数
geo_point
不属于上述任何情况,因此无法修改该字段的映射
您可能需要
reindex
数据。您使用的命令只是尝试创建包含上述映射的新索引。有关更多信息,请阅读第一个示例中的脚注
根据Elasticsearch文档,无法更新现有字段的映射
更新字段映射
通常,无法更新现有字段的映射。那里
这条规则有一些例外。例如:
- 可以将新属性添加到对象数据类型字段中
- 可以将新的多字段添加到现有字段中
- 可以更新上面的ignore_参数
geo_point
不属于上述任何情况,因此无法修改该字段的映射
您可能需要
重新编制数据索引。谢谢avr。我感谢你分享的信息。接下来,我发现如果我在开发工具控制台中使用上面的put方法首先为一个字段(geo_point字段)创建索引和映射,那么我们可以使用spark接收数据,它不会覆盖该字段的初始映射,因此这似乎是迄今为止最简单的解决方案。@Rob抱歉,我不明白你想表达什么!是的,我现在明白了。在elasticsearch中,它被称为显式映射。因此,我们的想法不是让elasticsearch推断数据类型,而是可以预先定义映射,然后接收数据。我感谢你分享的信息。接下来,我发现如果我在开发工具控制台中使用上面的put方法首先为一个字段(geo_point字段)创建索引和映射,那么我们可以使用spark接收数据,它不会覆盖该字段的初始映射,因此这似乎是迄今为止最简单的解决方案。@Rob抱歉,我不明白你想表达什么!是的,我现在明白了。在elasticsearch中,它被称为显式映射。因此,我们可以预先定义映射,然后接收数据,而不是让elasticsearch推断数据类型。