用必须的Bool查询

时间:2016-12-01 11:34:25

标签: sql elasticsearch

我正在尝试构建一个ElasticSearch查询,以便在SQL中获得与此相同的结果(查询是故意错误的):

SELECT * 
FROM events 
WHERE dist(store) < 500m 
AND created_at >= today() - 30 
AND id_mobile in (SELECT distinct id_mobile FROM events WHERE created_at > today() - 2)

现在,我逐渐尝试构建查询而没有id_mobile的最后限制,但我没有得到任何结果。我试图增加地理距离查询的距离限制,以防万一没有匹配的文件但仍然没有结果,而应该有一些匹配的文件,所以我想知道我做错了什么。这是查询:

{
    "query": {
        "bool": {
            "must": [{
                "range": {
                    "date": {
                        "gte": "now-30d",
                        "lt": "now"
                    }
                }
            }, {
                "geo_distance": {
                    "distance": "500m",
                    "location": {
                        "lat": 48.8,
                        "lon": 2.2
                    }
                }

            }]
        }
    }
}

另外,您对查询的最后部分有什么建议(关于id_mobile的限制)?

提前致谢!

0 个答案:

没有答案