gpt4 book ai didi

elasticsearch - 当字段不存在与字段存在但为null({})时,是否有办法区分Elasticsearch?

转载 作者:行者123 更新时间:2023-12-03 02:12:57 26 4
gpt4 key购买 nike

我有2种文件:

"doc1":{
"dummy_attribute":"HI",
...
"important_attribute":{}
}
"doc2":{
"dummy_attribute":"HI",
...
}
如果我这样搜索:
GET myindex/_search
{
"query": {
"bool": {
"must_not": [{
"exists": {
"field": "important_attribute"
}
}]
}
}
}
它给我两个文件。
有没有一种方法可以仅搜索文档中实际上不存在“important_attribute”的文档?

最佳答案

不幸的是,由于ES treats a non-existent value the same way as an empty-ish value(null""[]{}),这是不可能的。
您可以使用脚本字段快速检查文档是否包含空字典,但是在过滤时不能使用此上下文:

GET myindex/_search
{
"query": {
"bool": {
"must_not": [
{
"exists": {
"field": "important_attribute"
}
}
]
}
},
"script_fields": {
"has_empty_dict": {
"script": {
"source": "params._source.containsKey('important_attribute') && params._source.important_attribute.size() == 0"
}
}
}
}

关于elasticsearch - 当字段不存在与字段存在但为null({})时,是否有办法区分Elasticsearch?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64233627/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com