elastic v.7-按非索引字段筛选的无痛脚本

au9on6nz  于 2021-06-13  发布在  ElasticSearch
关注(0)|答案(0)|浏览(173)

在某些弹性文档中,添加了一个未在Map中编入索引的字段。我正在尝试筛选不包含以下字段的文档:

GET {index}/_search
{
    "query": {
        "bool" : {
            "filter" : {
                "script" : {
                    "script" : {
                        "source": """
                          doc['published'].value == 'xxx'
                         """,
                        "lang": "painless"
                     }
                }
            }
        }
    }
}

也试过了 doc.containsKey('published') 内部资源;
但是,由于“published”字段不在索引Map中,因此出现错误:
“在类型为[]的Map中找不到[已发布]的字段”
有没有办法用这个非索引字段搜索/过滤?
在这里,我发现有人做到了:https://discuss.elastic.co/t/how-to-search-non-indexed-field-in-elasticsearch/20594/4 . 但这是一个较旧的弹性版本,在适应版本7之后,该查询就不起作用了。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题