使用Elasticsearch 1.4.4,我有这个脚本 -
doc[field].date.getMinuteOfDay() >= gte && doc[field].date.getMinuteOfDay() <= lte
存储在这里 - config / script / minuteOfDayRange.groovy
我运行此查询:
POST test_index/_search
{
"filter": {
"script": {
"script_file": "minuteOfDayRange",
"params": {
"field": "start_time",
"gte": 0,
"lte": 1439
}
}
},
"size": 0
}
并收到错误消息。这是错误的一部分(它非常大,所以我试图只显示看起来最有用的部分):
&#34;错误&#34;:&#34; SearchPhaseExecutionException [无法执行阶段[查询],所有分片都失败; ......嵌套:QueryParsingException [[test_index] [script] filter不支持[script_file]]; ......
听起来这部分错误 [script]过滤器不支持[script_file] 表示脚本过滤器不能与 script_file 一起使用。那是对的吗?我已经使用 script_file 在同一个索引上生成成功的条件。在更新到1.4.4之前,此相同的过滤器使用动态脚本,但我现在使用 script_file 方法,因为更新到1.4.4。我是否可以在文件中使用脚本过滤器,如果可以,如何使用?
答案 0 :(得分:1)
它通过在查询中将 script_file 更改为脚本来实现。
我在github上发现了类似的问题,这是尝试这个问题的线索:https://github.com/elastic/elasticsearch/issues/10007