基于Elasticsearch 地理位置的查询
from datetime import datetime
from elasticsearch import Elasticsearch
from elasticsearch_dsl import Search, Q
# 假设Elasticsearch运行在本地,端口是9200
es = Elasticsearch(["http://localhost:9200"])
# 定义索引名
index_name = 'your_index_name'
# 创建搜索对象
s = Search(using=es, index=index_name)
# 设置地理位置查询的中心点和范围
geo_location = {
"lat": 40.715,
"lon": -73.
}
distance = "1km"
# 构建查询
s = s.query("geo_distance", **geo_location).filter("range", timestamp={"gte": "now-1h"})
# 执行查询并打印结果
response = s.execute()
for hit in response:
print(hit)
这段代码使用Elasticsearch DSL库构建了一个地理位置查询,并结合了一个时间范围过滤。它设定了一个中心点并搜索距离该点1公里以内的文档,同时还筛选了最近一小时内的文档。这个例子展示了如何在实际应用中结合地理位置和时间信息进行查询,并提供了一个简单的代码框架供开发者参考和扩展。
评论已关闭