我有一个疑问,
search = {
"query": {
"bool": {
"filter": [
{
"range": {
"created_at": {
"gte":"2013-12-31T07:14:22+00:00",
"lt":"2015-12-31T07:14:22+00:00"
}
}
},
{
"geo_bounding_box": {
"coordinates": {
"top_left": {
"lat": -105.03197389,
"lon": 39.93687082
},
"bottom_right": {
"lat":40.01724753,
"lon": -105.282502
}
}
}
}
{
"match": {
"text": "Story"
}
}
]
}
}
}
该查询的目标是试图找到在特定时间间隔内发布的、在特定边界框内并具有特定单词的推文。
但我不知道我应该在geo_bounding_box
部分中放入什么,我尝试平滑随机,它返回0个命中。然后我查看了我的数据,并选择了2个点**我将它们放在查询中,但它不工作,返回
BadRequestError(400, 'x_content_parse_exception', '[1:263] [bool] failed to parse field [filter]')
问题出在哪里,我应该如何写geo_bounding_box点?
1条答案
按热度按时间kiz8lqtg1#
以与边界框相交的方式使用地理边界框查询来匹配“geo_shape”字段。
左上角和右下角的坐标包含在所提供的纬度和经度值中。有关详细信息,请参阅官方elasticsearch文档documentation
除此之外,查询的格式有点不正确,修改后的查询应该是: