elasticsearch地理边界框未返回结果

问题描述 投票:0回答:1

我正在尝试使用弹性搜索的地理边界框功能以在我选择的框中返回结果。我从Google Maps获得边界坐标,它是NorthEast和SouthWest格式。

这是传递给elasticsearch php客户端的参数的示例转储(出于可读性而转换为JSON):

{
   "index":"MyIndex",
   "body":{
      "query":{
         "bool":{
            "must":{
               "match_all":{

               }
            },
            "filter":{
               "geo_bounding_box":{
                  "location":{
                     "top_right":{
                        "lat":53.2323104,
                        "lon":6.704821
                     },
                     "bottom_left":{
                        "lat":52.3136724,
                        "lon":4.311799
                     }
                  }
               }
            }
         }
      }
   }
}

这里有一些示例结果在ES中,当我进行常规的简单搜索(没有地理/边界框)时,我得到了返回:

[
   {
      "object_id":14396,
      "object_type":"POI",
      "location":{
         "lat":53.05194,
         "lon":5.38417
      }
   },
   {
      "object_id":24046,
      "object_type":"POI",
      "location":{
         "lat":52.52711,
         "lon":5.06319
      }
   },
   {
      "object_id":24680,
      "object_type":"POI",
      "location":{
         "lat":52.72525,
         "lon":4.96201
      }
   }
]

我相信这些都应该通过边界框搜索返回,我在这里缺少什么?

编辑:下面包括映射

{
   "MyIndex":{
      "mappings":{
         "pois":{
            "properties":{
               "object_id":{
                  "type":"string"
               },
               "object_type":{
                  "type":"string"
               },
               "location":{
                  "type":"geo_point"
               },
            }
         },
      }
   }
}

编辑2:ES中包含数据的原始响应:

{
   "_index":"MyIndex",
   "_type":"pois",
   "_id":"14916",
   "_score":1,
   "_source":{
      "object_id":"14916",
      "object_type":"POI",
      "location":{
         "lat":53.13915,
         "lon":6.19422
      }
   }
}
php elasticsearch geolocation elasticsearch-5
1个回答
-1
投票

top_leftbottom_right值传递不正确。尝试如下设置值:

location :{
    "top_right":{
        "lat":53.2323104,
        "lon":4.311799
        },
    "bottom_left":{
        "lat":52.3136724,
        "lon":6.704821
        }
}
© www.soinside.com 2019 - 2024. All rights reserved.