【问题标题】:Elasticsearch 7.x mapper [location] cannot be changed from type [geo_point] to [text]Elasticsearch 7.x 映射器 [location] 无法从类型 [geo_point] 更改为 [text]
【发布时间】:2020-11-30 15:50:08
【问题描述】:

我在弹性搜索中有一个索引,其位置字段映射为 geo_point。这是索引管理设置的映射选项卡中的内容。

{
  "mappings": {
    "_doc": {
      "properties": {
        "location": {
          "type": "geo_point"
        }
      }
    }
  }
}

根据 elasticsearch 上的geo-point 文档,我应该能够将其作为“lat,lon”字符串发送

这是发送到 elastic 的 json 中某个位置的值

'location': '32.807078,-89.908972'

我收到此错误消息

RequestError(400, 'illegal_argument_exception', 'mapper [location] cannot be changed from type [geo_point] to [text]')

更新

我能够让数据流入,但现在它以文本数据而不是 geo_point 的形式流入!

这是我的索引映射以及其他映射

这是在数据中

即使映射在那里,数据也是文本,我无法在地图图表中使用它。

解决方案

连同勾选的答案,也需要这样做。

转到主页 -> 管理 -> Kibana -> 索引模式

删除了原来的索引模式并创建了一个新的,现在它被视为geo_data!

【问题讨论】:

    标签: elasticsearch


    【解决方案1】:

    根据您的索引映射,您使用的似乎是 7.x 之前的 elasticsearch 版本。

    我已使用问题中提供的相同索引映射(使用版本 6.8)为文档编制索引。不要忘记在 URL 中添加_doc(或您在索引映射中使用的类型)(索引数据时)

    索引映射:

    {
      "mappings": {
        "_doc": {
          "properties": {
            "location": {
              "type": "geo_point"
            }
          }
        }
      }
    }
    

    索引数据:

    在将文档发布到 Elasticsearch 时,请确保 URL 的格式如下所述:

    PUT my_index/_doc/1
    
    {
      "location": "41.12,-71.34" 
    }
    

    回应:

    {
      "_index": "65076754",
      "_type": "_doc",
      "_id": "1",
      "_version": 1,
      "result": "created",
      "_shards": {
        "total": 2,
        "successful": 1,
        "failed": 0
      },
      "_seq_no": 0,
      "_primary_term": 1
    }
    

    编辑 1:

    在下面cmets的基础上,OP使用的是7.x

    使用 7.x 的索引映射

    {
      "mappings": {
        "properties": {
          "location": {
            "type": "geo_point"
          }
        }
      }
    }
    

    【讨论】:

    • 是的,我使用的是 7.x,我使用的是 elasticsearch python 库......也许我抓住了错误的版本......我将尝试使用 requests 库来处理 PUT 请求,看看.
    • @Four_0h_Three 如果您使用的是 7.x,那么您还需要更改索引映射,因为映射类型已被删除。请仔细阅读此,以了解有关删除映射类型的更多信息elastic.co/guide/en/elasticsearch/reference/current/…
    • @Four_0h_Three 尝试使用我添加的索引映射再次索引文档。请仔细阅读我更新的答案,如果这能解决您的问题,请告诉我?
    • 我创建了一个新索引,完全按照您在上面指定的方式使用 put 请求添加了映射,我能够摄取数据,但它显示为文本,而不是地理数据,我无法使用它在地图图表中......一定有一些愚蠢的事情我没有做,我想我只需要离开这个一段时间,然后带着新的头脑回来。
    猜你喜欢
    • 2018-04-13
    • 2021-10-19
    • 2020-03-02
    • 1970-01-01
    • 1970-01-01
    • 2020-06-15
    • 2020-07-30
    • 1970-01-01
    • 2019-09-27
    相关资源
    最近更新 更多