python-3.x - ElasticSearch中的地理距离排序?

标签 python-3.x elasticsearch search

引用ES documentation,如果lat和lon都在同一个地理类型字段中,则可以基于地理位置进行排序。

{
    "sort" : [
        {
            "_geo_distance" : {
                "pin.location" : [-70, 40],
                "order" : "asc",
                "unit" : "km",
                "mode" : "min",
                "distance_type" : "arc",
                "ignore_unmapped": true
            }
        }
    ],
    "query" : {
        "term" : { "user" : "kimchy" }
    }
}

就我而言,我在纬度和经度都位于单独的 float 字段中。如果无法更改架构,该如何按地理距离排序?

最佳答案

您将需要使用新映射创建一个新索引,该映射将包含geo point字段而不是两个字段(经纬度,经度)。然后,您需要将数据索引到新创建的索引中。看一看Reindex API-将帮助您将数据移动到新索引中。

关于python-3.x - ElasticSearch中的地理距离排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57973100/

相关文章:

elasticsearch - ElasticSearch计算按以下字段分组的多个字段

api - Outlook 邮件搜索 API

Python 幂乘法

mysql - 如何将数据插入包含一列的表中?

mongodb - 从 docker-compose 配置 MongoDB 副本集

javascript - 使用 Elasticsearch .js

search - 主机不是Elasticsearch中的公认参数

mysql - 复杂的搜索设计

python - 在Python中获取按键(pygame)

python - Win32com Outlook 正文属性错误