在某些弹性文档中,添加了一个未在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之后,该查询就不起作用了。
暂无答案!
目前还没有任何答案,快来回答吧!