弹性搜索脚本小时分钟

时间:2018-04-29 06:52:23

标签: elasticsearch time filter expression elasticsearch-groovy

使用弹性搜索运行脚本的这种行为对我来说非常令人费解。我正在运行一个脚本来按时间过滤。我从这个elastic documentation获得了这些方法。

使用HoursOfDay的此脚本有效( date.hourOfDay

{
        "script": {
          "script": {
            "lang": "expression",
            "source": "doc['@timestamp'].date.hourOfDay >= min && doc['@timestamp'].date.hourOfDay <= max",
            "params": {
              "min": 5,
              "max": 8
            }
          }
        }          
      }  

然而,具有Minutes的脚本不会返回任何结果。的(date.minuteOfDay)

{
        "script": {
          "script": {
            "lang": "expression",
            "source": "doc['@timestamp'].date.minuteOfDay >= min && doc['@timestamp'].date.minuteOfDay <= max",
            "params": {
              "min": 300,
              "max": 480
            }
          }
        }          
      }     

此外,我通过使用“ date.getHourOfDay()”和“ date.getMinutes()”来尝试此elastic document的其他方式,并且发现了类似的行为getHourOfDay返回结果,getMinutes()不返回。

我在这里遗漏了什么,或者在弹性级别是否有特定的配置来启用此方法。感谢。

1 个答案:

答案 0 :(得分:0)

我认为在源代码中你可以尝试使用params.min和params.max来代替min和max