首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Elasticsearch -过滤geo_distance查询

Elasticsearch -过滤geo_distance查询
EN

Stack Overflow用户
提问于 2018-05-25 21:43:23
回答 1查看 204关注 0票数 0

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

我想按地理位置列出我的地点,并使用这种查询

代码语言:javascript
复制
{
"query": {
    "bool": {
        "filter": {
            "geo_distance": {
                "distance": "20km",
                "location": {
                    "lat": 48.856614,
                    "lon": 2.3522219
                }
            }
        }
    }
},
"aggs": {
    "types": {
        "terms": {
            "field": "type"
        }
    }
},
"post_filter": [],
"page": 1,
"size": 50,
"sort": [
    {
        "_geo_distance": {
            "location": {
                "lat": 48.856614,
                "lon": 2.3522219
            },
            "order": "asc",
            "unit": "km",
            "distance_type": "plane"
        }
    }
]
}

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

EN

回答 1

Stack Overflow用户

发布于 2018-05-25 22:02:58

向过滤器添加另一个子句,如下所示

代码语言:javascript
复制
{
"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"
    }
}
]
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50530605

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档