【发布时间】:2020-07-24 05:55:50
【问题描述】:
我使用了以下过滤器,然后使用 Lucene 搜索查询字符串以获得我正在寻找的视图。
{
"query": {
"match": {
"eventSource": {
"query": "ec2.amazonaws.com",
"type": "phrase"
}
}
}
}
我不想返回以单词 describe 或 get 开头的事件名称。应该返回来自 ec2 事件源的其余事件名称。
!(eventName.keyword:Describe* OR eventName.keyword: 获取*)
问题是如何将这两个搜索请求合二为一? 我需要从我的应用程序中使用该查询。
更新:
Kibana Discover 选项卡的 Inspect 菜单会生成此查询。我只是想用布尔 OR 子句用通常的 match 或 match_phrase 重写 query_string 部分。
"query": {
"bool": {
"must": [
{
"query_string": {
"query": "!(eventName.keyword: Describe* OR eventName.keyword: Get* )",
"analyze_wildcard": true
}
},
{
"match_phrase": {
"eventSource": {
"query": "ec2.amazonaws.com"
}
}
},
{
"range": {
"@timestamp": {
"format": "strict_date_optional_time",
"gte": "2020-07-09T08:39:15.947Z",
"lte": "2020-07-24T08:39:15.947Z"
}
}
}
],
"filter": [],
"should": [],
"must_not": []
}
}
【问题讨论】:
标签: elasticsearch kibana