Elasticsearch безболезненное исключение запроса
Я использую Elasticsearch 6.2, который использует безболезненно для встроенных сценариев. Одно из полей в моем документе имеет отображение:
"gap_days": {"type": "integer"}
И у меня есть безболезненный скрипт для поиска и несколько строк:
int gap = 10; //initialize to a default value
if (doc.containsKey('gap_days')) {
if (doc['gap_days'].value != null) {
gap = doc['gap_days'].value;
}
}
Но это продолжает выдавать ошибку:
script_stack: [
"gap = doc['gap_days'].value; } } ",
" ^---- HERE"
],
caused_by: {
reason: "cannot convert MethodHandle(Longs)long to (Object)int",
type: "wrong_method_type_exception"
},
reason: "runtime error"
Я пытался изучить все уникальное doc['gap_days']
значения в индексе, и вы можете видеть, что все они являются целыми во всех документах
"aggregations": {
"uniq_gaps": {
"doc_count_error_upper_bound": 0,
"sum_other_doc_count": 342,
"buckets": [
{
"key": 0,
"doc_count": 31607
},
{
"key": 365,
"doc_count": 15119
},
{
"key": 5,
"doc_count": 2639
},
{
"key": 21,
"doc_count": 1784
},
{
"key": 14,
"doc_count": 1229
},
{
"key": 3,
"doc_count": 1073
},
{
"key": 7,
"doc_count": 979
},
{
"key": 2,
"doc_count": 728
},
{
"key": 4,
"doc_count": 291
},
{
"key": 10,
"doc_count": 170
}
]
}
}
Тогда почему он выбрасывает исключение, говоря cannot convert MethodHandle(Longs)long to (Object)int
и мой сценарий перестает работать. Есть идеи, как решить эту проблему?