Не удалось загрузить файл javascript Elasticsearch - PullRequest
0 голосов
/ 20 сентября 2018

Я написал функцию 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"
                }
            }
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...