根据无痛脚本中的Elasticsearch查询评估文档?

时间:2019-12-09 14:16:05

标签: elasticsearch elasticsearch-painless

我正在使用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 { 字段不可用,因此为什么我要尝试上述方法。

0 个答案:

没有答案