gpt4 book ai didi

python - ElasticSearch 在 python 中请求范围时间戳

转载 作者:太空宇宙 更新时间:2023-11-03 15:20:48 24 4
gpt4 key购买 nike

我正在尝试在我的 ES 上执行请求,以计算时间戳范围内的日志。我的请求有效,但她总是返回相同的结果。时间戳过滤器似乎不起作用。我想在自定义时间戳范围内通过 status_code 为我的 servertest01 检索一个方面。

import rawes
from datetime import datetime
from dateutil import tz
paristimezone = tz.gettz('Europe/Paris')

es = rawes.Elastic('127.0.0.1:9200')

result = es.get('/_search', data={
"query" : { "match_all" : {}
},
"filter": {
"range": {
"@timestamp": {
"from": datetime(2013, 3, 11, 8, 0, 30, tzinfo=paristimezone),
"to": datetime(2013, 3, 12, 11, 0, 30, tzinfo=paristimezone)}
}
},
"facets" : {
"error" : {
"terms" : {
"field" : "status_code"
},
"facet_filter" : {
"term" : {"server" : "testserver01"}
}
}
}
})

print(result['facets'])

而在我的ES数据中,timestamp字段是这样的:

"@timestamp":"2013-03-12T00:02:29+01:00"

谢谢:)

最佳答案

搜索 API 中的 filter 元素用于在计算构面后过滤查询结果。

如果您想将过滤器同时应用到查询和构面,那么您应该改用filtered 查询:

result = es.get('/_search', data={
"query": {
"filtered": {
"query" : { "match_all" : {}},
"filter": {
"range": {
"@timestamp": {
"from": datetime(2013, 3, 11, 8, 0, 30, tzinfo=paristimezone),
"to": datetime(2013, 3, 12, 11, 0, 30, tzinfo=paristimezone)
}
}
}
}
},
"facets" : {
"error" : {
"terms" : {
"field" : "status_code"
},
"facet_filter" : {
"term" : {"server" : "testserver01"}
}
}
}
})

关于python - ElasticSearch 在 python 中请求范围时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15382629/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com