Elasticsearch JavaScript文件无法加载

时间:2018-09-20 03:16:07

标签: javascript file elasticsearch

我编写了一个javascript函数,该函数计算具有多个位置的一个点之间的最近距离,并将其放入/etc/elasticsearch/scripts/my_file.javascript,并使用script mode在{{1}中执行此功能},但不幸的是,我得到一个错误。

  

u'search_phase_execution_exception',u'script_score:脚本无法加载'

任何人都可以帮助我!预先感谢

这是我的脚本文件中的代码

elasticsearch

})();

这是我用来调用脚本文件的全部代码的一部分

(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;

0 个答案:

没有答案