0
でソート:Elasticsearchは、私は次のスクリプトをソートするためにしようとしているスクリプト
if (doc['stats.favoriteCount'].value > doc['stats.likeCount'].value)
{
return doc['stats.favoriteCount'].value;
}
return doc['stats.likeCount'].value;
これは私が使用しているリクエストです:
{
"sort": [
{
"_script": {
"script": {
"file": "sorting-likes",
"lang": "groovy"
},
"type": "number"
}
}
]
}
そして、これは私が得ているエラーです:
"reason": {
"type": "groovy_script_execution_exception",
"reason": "failed to run file script [sorting-likes] using lang [groovy]",
"caused_by": {
"type": "missing_method_exception",
"reason": "No signature of method: 7b6bb56cf8fda7e1301b150b05d81813258c223b.if() is applicable for argument types: (java.lang.Boolean, 7b6bb56cf8fda7e1301b150b05d81813258c223b$_run_closure1) values: [true, [email protected]]\nPossible solutions: wait(), run(), run(), any(), find(), is(java.lang.Object)"
}
}
私は本当に何が間違って見ることができません。これはもっと長いスクリプトだったので、私はそれを使用できる最小限にまで細分化しました。インラインがうまく機能として、このコードを実行する
:
{
"sort": [
{
"_script": {
"script": {
"inline": "if (doc['stats.favoriteCount'].value>doc['stats.likeCount'].value)return doc['stats.favoriteCount'].value;return doc['stats.likeCount'].value;",
"lang": "groovy"
},
"type": "number"
}
}
]
}
それでも感謝