我正在尝试在我的一个应用程序中使用以下Painless脚本查询,但似乎无法正常工作。语法有问题吗?我注意到,实际上不起作用的部分是此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}
}}}
谢谢!
最佳答案
以下查询将起作用。
更改索引名称以匹配您的索引,然后在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"
]
}
}
}
}
}
关于arrays - ElasticSearch无痛脚本不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41810886/