gpt4 book ai didi

amazon-web-services - 如何根据字段内容从Elasticsearch中排除结果?

转载 作者:行者123 更新时间:2023-12-02 22:57:45 25 4
gpt4 key购买 nike

我在AWS上使用elasticsearch来存储Cloudfront的日志。我创建了一个简单的查询,它将为我提供过去24小时内的所有条目,从新到旧排序:

{
"from": 0,
"size": 1000,
"query": {
"bool": {
"must": [
{ "match": { "site_name": "some-site" } }
],
"filter": [
{
"range": {
"timestamp": {
"lt": "now",
"gte": "now-1d"
}
}
}
]
}
},
"sort": [
{ "timestamp": { "order": "desc" } }
]
}

现在,有一些源(基于用户代理),我希望 排除结果。所以我的问题可以归结为:

当某个字段 包含某个字符串时,如何从结果中过滤出条目?要么:
query.filter.where('cs_user_agent').does.not.contain('Some string')
(显然,这不是真实的代码。)

我试图理解Elasticsearch文档,但是找不到如何实现此目标的好例子。

我希望这是有道理的。提前致谢!

最佳答案

好的,我知道了。我所做的是将 bool(boolean) 查询与通配符结合使用:

{
"from": 0,
"size": 1000,
"query": {
"bool": {
"must": [
{ "match": { "site_name": "some-site" } }
],
"filter": [
{
"range": {
"timestamp": {
"lt": "now",
"gte": "now-1d"
}
}
}
],
"must_not": [
{ "wildcard": { "cs_user_agent": "some string*" } }
]
}
},
"sort": [
{ "timestamp": { "order": "desc" } }
]
}

这基本上匹配任何包含“某些字符串”的用户代理字符串,然后将其过滤掉(由于“must_not”)。

我希望这对遇到此问题的其他人有所帮助。

关于amazon-web-services - 如何根据字段内容从Elasticsearch中排除结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46356619/

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