javascript - Elasticsearch javascript 文件无法加载
问题描述
我编写了一个 javascript 函数,它计算一个点与多个位置之间的最近距离,并将其放入 /etc/elasticsearch/scripts/my_file.javascript 并script mode
用于在 中执行此函数elasticsearch
,但不幸的是,我得到了一个错误。
u'search_phase_execution_exception', u'script_score:无法加载脚本'
任何人都可以帮助我!提前致谢
这是我的脚本文件中的代码
(function(){
var i, locations, arcDist, closest, distance;
arcDist = function( lat1, lat2, lon1, lon2 ){
var R = 6371 // earth radius
, CI = 0.017453292519943295 // pi/180
, dLat = (lat2-lat1) * CI / 2
, dLon = (lon2-lon1) * CI / 2
, sinDLat = Math.sin(dLat)
, sinDLon = Math.sin(dLon)
, a = sinDLat*sinDLat + sinDLon*sinDLon * Math.cos(lat1*CI)*Math.cos(lat2*CI)
, c = 2*Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
return R * c;
}
locations = doc["locations"].getValues();
closest = arcDist( lat, locations[0].lat(), lon, locations[0].lon() );
for( i=1; i < locations.length; i++ ) {
distance = arcDist( lat, locations[i].lat(), lon, locations[i].lon() );
if(distance < closest) {
closest = distance;
}
}
return closest;
})();
这是我用来调用脚本文件的整个代码的一部分
search_term["query"]["function_score"] = {
"query": {
"bool": bool_filter,
},
"script_score": {
"script": {
"file": "my_file",
"lang": "javascript"
}
}
}
解决方案
推荐阅读
- python - 在模块之间导入全局变量
- docker - 为什么 Graphite 安装需要 docker
- azure-devops - 在 vsts 扩展中如何从 url 参数中获取值?
- maven - CSV 格式的 Maven Surefire 报告
- c# - 正则表达式在 C# 中搜索不以“0”开头的节号
- android - 自定义适配器后无法在 Activity 中启用按钮编辑文本 afterTextChanged()
- python-3.x - 在 Python3 中读取 NetCDF 文件
- python - tkinter 标签在 python 中未正确显示
- python - Python:制作类实例会产生 AttributeError
- angular6 - ngx bootstrap - 在模板中嵌套组件