나는 script_score를 사용하여 ID 값의 json을 기반으로 점수를 업데이트하려고합니다. 점수는 원래 점수에 params에 나열된 요소를 곱해야합니다.Elasticsearch script_score with array
"script_score": {
"params": {
"ranking": {
"1": "1.3403946161270142",
"3": "1.3438195884227753"
}
},
"script": "_score * ranking[doc['ID'].value]"
}
나는 다음과 같은 오류가 점점 오전 : 내가 수동으로 예를 들어 _score에 대한 ID * 순위를 지정하는 경우
nested: QueryParsingException[[index name] script_score the script could not be loaded]; nested: CompileException[[Error: unbalanced braces [ ... ]]\n[Near : {... _score * ranking[doc['ID'].value] ....}]\n ^\n[Line: 1, Column: 29]]; }]"
를 [ '1'], 그것을 잘 작동합니다. 또한 ID를 직접 사용하면 작동하지만 ID 값을 색인으로 사용하면 작동하지 않습니다. 나는 ID가 정수라는 것에 주목해야한다. 누구든지이 문제를 해결할 수 있습니까? 또한 ID가 순위 목록에없는 경우 어떻게 작동합니까? 그것은 점수 = '_ 점수'로 취급할까요?