Elasticsearch - 过滤geo_distance查询

时间:2018-05-25 13:43:23

标签: elasticsearch

我有一个带有两个字段的映射类型:location(geo_point)和type(short)。

我想按地理位置列出我的地点并使用此类查询

$("#datepicker1").datepicker({
    onSelect: function(dateText) {
        $("#myForm").submit();
    }
});

有没有办法只包含特殊类型的前2个位置(例如type = 2)?

1 个答案:

答案 0 :(得分:0)

在过滤器中添加另一个子句,如

{
"query": {
"bool": {
    "filter": [{
        "geo_distance": {
            "distance": "20km",
            "location": {
                "lat": 48.856614,
                "lon": 2.3522219
            }
        }
    },
    { 
     "term": {"type":"2"}
    }]
}
},
"aggs": {
"types": {
    "terms": {
        "field": "type"
    }
 }
},
"post_filter": [],
"page": 1,
"size": 2,
"sort": [
{
    "_geo_distance": {
        "location": {
            "lat": 48.856614,
            "lon": 2.3522219
        },
        "order": "asc",
        "unit": "km",
        "distance_type": "plane"
    }
}
]
}