我有这个查询,
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点?
;geo_ shape";使用地理边界框查询以与边界框相交的方式匹配字段。
左上角和右下角的坐标包含在提供的纬度和经度值中。有关更多信息,请参阅官方弹性搜索文档
除此之外,查询有点格式错误,修改后的查询应该是:
{
"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"
}
}
]
}
}
}