Painless 语法

painless 语句详解(条件、循环)


Painless 语句主要分为条件语句和循环语句;Painless 支持除了 switch 以外的 java 所有控制流程语句。

条件语句

If/Else

和 java 语言的表达式,示例如下:

if (doc[item].size() == 0) {
  // do something if "item" is missing
} else if (doc[item].value == 'something') {
  // do something if "item" value is: something
} else {
  // do something else
}

循环语句

For

Painless 支持 for in 语句,示例如下:

for (def item : list) {
  // do something
}
for (item in list) {
  // do something
}

While

while (ctx._source.item < condition) {
  // do something
}

Do-While

do {
  // do something
}
while (ctx._source.item < condition)