【问题标题】:Mapping geo_point data when importing data to AWS Elasticsearch将数据导入 AWS Elasticsearch 时映射 geo_point 数据
【发布时间】:2018-07-31 23:33:43
【问题描述】:

我在 dynamodb 中有一组数据,我正在使用本教程将这些数据导入 AWS Elasticsearch:https://medium.com/@vladyslavhoncharenko/how-to-index-new-and-existing-amazon-dynamodb-content-with-amazon-elasticsearch-service-30c1bbc91365

我需要将部分数据的映射更改为 geo_point。

我尝试在导入数据之前创建映射:

PUT user
{
  "mappings": {
    "_doc": {
      "properties": {
        "grower_location": {
            "type": "geo_point"
        }
      }
    }
  }
}

当我这样做时,数据不会导入,尽管我没有收到错误。

如果我先导入数据,我可以搜索它,尽管 grower_location: { lat: #, lon: # } 对象被映射为整数,我无法运行 geo_distance。

请帮忙。

【问题讨论】:

  • 你的DynamoDB表是怎么调用的?索引名称将以您的表名命名。你能显示生成的映射吗?

标签: amazon-web-services elasticsearch geolocation kibana


【解决方案1】:

我可以通过使用教程中的 python 脚本导入一次数据来解决这个问题。

然后运行

GET user/_mappings

将自动生成的映射复制到剪贴板,然后,

DELETE user/

然后将复制的映射粘贴到新映射并更改 geo_point 数据的类型。

PUT user/
{
   "mappings": {
     "user_type": {
       "properties": {
         ...
         "grower_location": {
           "type": "geo_point"
         }
         ...
       }
     }
   }
}

然后使用教程中的 python 脚本重新导入数据。 一切都已导入并准备好使用 geo_point 进行搜索!

【讨论】:

  • 在使用python重新导入数据之前,您是否删除了索引?
  • 我按照你的方法试过了,但是映射没有任何反应;
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-05-24
  • 2019-02-02
  • 2020-07-30
  • 2022-11-11
  • 1970-01-01
  • 1970-01-01
  • 2020-03-02
相关资源
最近更新 更多