Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
<img src="//i.stack.imgur.com/RUiNP.png" height="16" width="18" alt="" class="sponsor tag img">elasticsearch Kibana 6合并2个过滤器_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Kibana_Kibana 6 - Fatal编程技术网 elasticsearch Kibana 6合并2个过滤器,elasticsearch,kibana,kibana-6,elasticsearch,Kibana,Kibana 6" /> elasticsearch Kibana 6合并2个过滤器,elasticsearch,kibana,kibana-6,elasticsearch,Kibana,Kibana 6" />

elasticsearch Kibana 6合并2个过滤器

elasticsearch Kibana 6合并2个过滤器,elasticsearch,kibana,kibana-6,elasticsearch,Kibana,Kibana 6,我有两个过滤器工作良好: 1.与短语“NA”匹配 2.使用脚本字段拉取筛选器以显示不在0-7之间的所有小时数: { "script": { "script": { "inline": "boolean gte(Supplier s, def v) {return s.get() >= v} boolean lt(Supplier s, def v) {return s.get() < v}gte(() -> { doc['@timestamp'].dat

我有两个过滤器工作良好: 1.与短语“NA”匹配

2.使用脚本字段拉取筛选器以显示不在0-7之间的所有小时数:

{
  "script": {
    "script": {
      "inline": "boolean gte(Supplier s, def v) {return s.get() >= v} boolean lt(Supplier s, def v) {return s.get() < v}gte(() -> { doc['@timestamp'].date.hourOfDay }, params.gte) && lt(() -> { doc['@timestamp'].date.hourOfDay }, params.lt)",
      "params": {
        "gte": 0,
        "lt": 7,
        "value": ">=0 <7"
      },
      "lang": "painless"
    }
  }
}
{
“脚本”:{
“脚本”:{
“内联”:“布尔gte(供应商s,定义v){return s.get()>=v}布尔lt(供应商s,定义v){return s.get(){doc['@timestamp'].date.hourOfDay},params.gte)和<(()->{doc['@timestamp'].date hourOfDay},params.lt)”,
“参数”:{
“gte”:0,
“lt”:7,

“值”:“>=0在使用可视化工具和发现之前,请确保在
管理->索引模式->创建索引模式下创建索引模式,并添加要应用过滤器的索引的名称

现在,组合您在问题中添加的查询,组合查询如下所示:

{
  "query": {
    "bool": {
      "must": [
        {
          "region.keyword": {
            "query": "NA",
            "type": "phrase"
          }
        },
        {
          "script": {
            "script": {
              "inline": "boolean gte(Supplier s, def v) {return s.get() >= v} boolean lt(Supplier s, def v) {return s.get() < v}gte(() -> { doc['@timestamp'].date.hourOfDay }, params.gte) && lt(() -> { doc['@timestamp'].date.hourOfDay }, params.lt)",
              "params": {
                "gte": 0,
                "lt": 7,
                "value": ">=0 <7"
              },
              "lang": "painless"
            }
          }
        }
      ]
    }
  }
}
{
“查询”:{
“布尔”:{
“必须”:[
{
“region.keyword”:{
“查询”:“不适用”,
“类型”:“短语”
}
},
{
“脚本”:{
“脚本”:{
“内联”:“布尔gte(供应商s,定义v){return s.get()>=v}布尔lt(供应商s,定义v){return s.get(){doc['@timestamp'].date.hourOfDay},params.gte)和<(()->{doc['@timestamp'].date hourOfDay},params.lt)”,
“参数”:{
“gte”:0,
“lt”:7,

“value”:“>=0这是非常有用的,尽管我得到了这个错误”`[parsing_exception]没有[query]为[region.keyword]注册,{line=1&col=646}`这很奇怪,因为它在脚本未加入时工作正常。我发现region.keyword很好。@chowpay,我尝试使用示例映射并使用其
字段。keyword
在我的末尾工作正常。包括脚本。您是否也可以尝试使用basic
匹配
范围.keyword
来隔离问题与其他字段一样,查看这是否适用于
编辑查询DSL
。同时删除第一个查询中的
“type”:“phrase”
。首先检查两个查询是否通过Kibana返回响应,然后将它们合并。
{
  "query": {
    "bool": {
      "must": [
        {
          "region.keyword": {
            "query": "NA",
            "type": "phrase"
          }
        },
        {
          "script": {
            "script": {
              "inline": "boolean gte(Supplier s, def v) {return s.get() >= v} boolean lt(Supplier s, def v) {return s.get() < v}gte(() -> { doc['@timestamp'].date.hourOfDay }, params.gte) && lt(() -> { doc['@timestamp'].date.hourOfDay }, params.lt)",
              "params": {
                "gte": 0,
                "lt": 7,
                "value": ">=0 <7"
              },
              "lang": "painless"
            }
          }
        }
      ]
    }
  }
}