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)