【问题标题】:elastic search query for geo points distance地理点距离的弹性搜索查询
【发布时间】:2018-07-01 17:42:36
【问题描述】:

我想按客户点获取在交付范围内的资源。 我的映射如下:

 "restaurantPoint"       => [
 "type" => "geo_point"
 ],
 "deliveryRadius"        => [
 "type" => "float"
 ]

以及如下示例数据:

`"restaurantPoint": "35.73701996471125,51.409086138010025",
"deliveryRadius": 1`

所以,每个餐厅都有一个点和一个以公里为单位的配送半径,另一方面我们知道用户点。 在查询中,我想获得可以将食物送到用户位置的餐厅。 我必须检查餐厅点和用户点之间的距离是否小于等于餐厅送货半径。

例如,如果用户和餐厅之间的距离是 1 公里,餐厅的送餐半径是 2 公里,我们可以选择它。

elastic search文档不完整,寻找解决办法。

【问题讨论】:

    标签: elasticsearch kibana


    【解决方案1】:

    最后我使用了脚本:

    GET development-restaurants/restaurants/_search
    {
        "query": {
            "bool" : {
            "must" : {
                "script" : {
                    "script" : {
                        "source": "doc['restaurantPoint'].arcDistance(35.73702, 51.40909) <= doc['deliveryRadius'].value",
                        "lang": "painless"
                     }
                }
            }
         }
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-06
      • 2016-08-28
      • 1970-01-01
      • 2013-11-26
      • 2016-08-08
      相关资源
      最近更新 更多