我正在尝试构建一个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的限制)?
提前致谢!