Неопределенная переменная в безболезненном скрипте - PullRequest
0 голосов
/ 21 февраля 2019

У меня есть документ с такой структурой (псевдокод, просто чтобы понять структуру в json):

source{
    id,
    property: {prop1, prop2}
}

Мне нужно отсортировать результат поиска по prop1 илиprop2.У меня также есть массив (жестко запрограммированный здесь), который будет пытаться соответствовать полю "id".Если идентификатор содержится в массиве, мы сортируем по prop1.В противном случае prop2.

И это json:

{
"query": {
  "bool" : {
    "must": { "match_all": {} }
  }
},
"sort": {
    "_script": {
        "script": {
          "lang":"painless",
          "inline":"[ 677 ].indexOf(doc['id']) !== -1 ? doc['property.prop1.raw'] : doc['property.prop1.raw.raw']"
        },
        "type": "string",
        "order": "asc"
    }
}
}

Затем я получаю:

{"type":"illegal_argument_exception","reason":"Variable [id] is not defined."}

Я перепробовал все возможные комбинации,Сначала заменив "inline" на "source".Но также используя on:

doc['id']
doc[id]
doc['id.raw']
doc['id.raw.value']
doc['id.raw'].value
doc['id'].raw.value

Всегда выдает одну и ту же ошибку.Что я делаю не так?


РЕДАКТИРОВАТЬ


Это фактический документ:

{
_index: "myindex",
_type: "cases",
_id: "72",
found: true,
_source: {
    id: 72,
    property: {
        id: 72,
        prop1: "a",
        prop2: "b"
    }
}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...