Я хочу использовать запрос для сравнения нескольких полей. У меня есть поля с 1 по 4. Я хочу найти данные, поле которых 1 больше, чем поле 2 и ниже запрос отлично работает;
{
"size": 0,
"_source": [
"field1",
"field2",
"field3",
"field4"
],
"sort": [],
"query": {
"bool": {
"filter": [],
"must": {
"script": {
"script": {
"inline": "doc['field1'].value > doc['field2'].value;",
"lang": "painless"
}
}
}
}
}
}
Теперь я хочу найти данные, какое поле 1 больше поля 2, а также какое поле 3 больше поля 4. в соответствии с Упругий поиск: Как писать сценарии с несколькими операторами? и Эта ссылка Мне просто нужно отделить каждое утверждение точкой с запятой. Так и должно быть:
{
"size": 0,
"_source": [
"field1",
"field2",
"field3",
"field4"
],
"sort": [],
"query": {
"bool": {
"filter": [],
"must": {
"script": {
"script": {
"inline": "doc['field1'].value > doc['field2'].value; doc['field3'].value > doc['field4'].value;",
"lang": "painless"
}
}
}
}
}
}
Но этот запрос не работает и возвращает ошибку компиляции, например:
{ "ROOT_CAUSE": [{ "типа": "script_exception", "причина": "компилировать
ошибка "," script_stack ": [" doc ['field1']. value> doc ['... "," ^ ----
ЗДЕСЬ "]," script ":" doc ['field1']. Value> doc ['field2']. Value;
doc ['field1']. value> doc ['field2']. value;
" "Языки": "безболезненный"}], "типа": "search_phase_execution_exception", "причина":" все
осколки
не удалось», "фаза": "запрос", "сгруппированы": правда, "failed_shards": [{ "осколок": 0, "Индекс": "финансовые", "узел": "8SXaM2HcStelpLHvTDSMCQ", "причина": { "Тип": "query_shard_exception", "причина": "не удалось
создать запрос: {\ n \ "bool \": {\ n \ "must \": [\ n {\ n \ "script \":
{\ n \ "script \": {\ n \ "source \": \ "doc ['field1']. value>
. Документ [ 'поле2'] значение; doc ['field1']. value> doc ['field2']. value; \», \ П
\ "lang \": \ "безболезненно \" \ n}, \ n \ "boost \": 1.0 \ n} \ n} \ n], \ n
\ "Adjust_pure_negative \": true, \ n \ "boost \": 1,0 \ n
} \ П} " "index_uuid": "hz12cHg1SkGwq712n6BUIA", "Индекс": "финансовые", "caused_by": { "Тип": "script_exception", "причина":" компиляции
ошибка "," script_stack ": [" doc ['field1']. value> doc ['... "," ^ ----
ЗДЕСЬ "]," script ":" doc ['field1']. Value> doc ['field2']. Value;
doc ['field1']. value> doc ['field2']. value;
" "Языки": "безболезненным", "caused_by": { "типа": "illegal_argument_exception", "причина":" Не
заявление. "}}}}]}