gpt4 book ai didi

php - elasticsearch地理边界框不返回结果

转载 作者:行者123 更新时间:2023-12-03 00:31:18 26 4
gpt4 key购买 nike

我正在尝试使用 flex 搜索的地理边界框功能将结果返回到我选择的框中。我从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
}
}
}

最佳答案

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

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

关于php - elasticsearch地理边界框不返回结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40919012/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com