我正在尝试在我的某个应用程序中使用以下无痛脚本查询,但它似乎不起作用。语法有问题吗?我注意到那个不起作用的部分是Math.max(doc["level"].value, 1) - 1
。请注意" id"字段是一个关键字," level"是一个字节。
{script: {script: {
inline: 'doc["id"].value == params.parentDocIds[Math.max(doc["level"].value, 1) - 1]',
params: {parentDocIds: parentDocIds}
}}}
谢谢!
答案 0 :(得分:0)
以下查询将有效。 更改索引名称以匹配您的索引并在Kibana中尝试。
GET todo-index-name-here/_search
{
"query": {
"script": {
"script": {
"inline": "def idx = (int)Math.max(doc['level'].value, 1) - 1; return (doc['id'].value == params.parentDocIds[idx])",
"lang": "painless",
"params": {
"parentDocIds": [
"x",
"y",
"z"
]
}
}
}
}
}