Elasticsearch безболезненное исключение запроса - PullRequest
0 голосов
/ 12 июня 2018

Я использую 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 и мой скрипт перестает работать.Есть идеи, как решить эту проблему?

...