使用带有 script_file 的脚本过滤器的 elasticsearch 1.4.4 错误
elasticsearch 1.4.4 error using script filter with script_file
使用 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
}
并得到一个错误。这是错误的一部分(它真的很大,所以我试图只显示看起来最有帮助的部分):
"error": "SearchPhaseExecutionException[未能执行阶段[查询],所有分片失败;......嵌套:QueryParsingException[[test_index] [脚本] 过滤器不支持 [script_file]];......
听起来 [script] 过滤器不支持 [script_file] 的这部分错误是说脚本过滤器不适用于 script_file。那是对的吗?我已经使用 script_file 在同一索引上成功生成了术语。在更新到 1.4.4 之前,同样的过滤器使用动态脚本工作,但我现在使用 script_file 方法,因为更新到 1.4.4。我可以在文件中使用脚本过滤器吗?如果可以,如何使用?
它通过在查询中将 script_file 更改为 script 来工作。
我在 github 上发现了一个类似的问题,这是一个尝试这个的线索:https://github.com/elastic/elasticsearch/issues/10007
使用 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
}
并得到一个错误。这是错误的一部分(它真的很大,所以我试图只显示看起来最有帮助的部分):
"error": "SearchPhaseExecutionException[未能执行阶段[查询],所有分片失败;......嵌套:QueryParsingException[[test_index] [脚本] 过滤器不支持 [script_file]];......
听起来 [script] 过滤器不支持 [script_file] 的这部分错误是说脚本过滤器不适用于 script_file。那是对的吗?我已经使用 script_file 在同一索引上成功生成了术语。在更新到 1.4.4 之前,同样的过滤器使用动态脚本工作,但我现在使用 script_file 方法,因为更新到 1.4.4。我可以在文件中使用脚本过滤器吗?如果可以,如何使用?
它通过在查询中将 script_file 更改为 script 来工作。
我在 github 上发现了一个类似的问题,这是一个尝试这个的线索:https://github.com/elastic/elasticsearch/issues/10007