我正在使用update_by_query
查找和更新一些文档。
找到文档后,是否可以从painless
脚本中通过POST test/_update_by_query
{
"script": {
"source": "...",
"lang": "painless"
},
"query": {
"match_all": {
"_name": "match-all"
}
}
}
脚本内部的Elasticsearch查询评估文档?
例如,查找文档:
painless
然后在我的// Check if the document (ctx._source) matches a query like:
// "query": {
// "term": {
// "is_active": true
// }
// }
if (ctx._source matches (above query)
// do something
脚本中,该脚本一次处理一个文档,其操作类似于(仅示例,无效的语法):
update_by_query
我的用例是我正在使用update_by_query
查找和更新一些文档,但是我想对文档的不同子集执行不同的操作,具体取决于它们是否与查询匹配。
我想到了在painless
查询中为此使用命名查询,然后在if (ctx.matched_queries contains namedQuery1)
// do something
if (ctx.matched_queries matched namedQuery2)
// do something
脚本中使用命名查询来确定要对特定文档执行的操作,例如
matched_queries
但是,painless
脚本/ ctx
对象中的Import-CSV C:\Test\TestFile.csv | Where-Object { $_."Date Of Birth" -Notlike $SearchFor } | ForEach-Object {
字段不可用,因此为什么我要尝试上述方法。