elasticsearch 弹性存在字段值和字段类型的请求

polkgigr  于 2022-11-22  发布在  ElasticSearch
关注(0)|答案(1)|浏览(165)

我正在做一个集成测试的项目,我的数据包括了人们过去所做的所有架构更新。例如,我的“documents”字段有一个属性user,它过去是一个数组,但现在是一个Object。
我正在尝试编写一个集成测试,如果user类型是Object,而不是Array,它将只使用document
有没有办法在ExistsQuery中实现这个功能?到目前为止,我还没有找到任何东西。下面是我当前的查询,它会返回不一致的数据:

GET _search
{
 "query" : {
   "bool" : {
     "must" : {
       "exists" : {
         "document.user"
       }
     }
   }
 }
}

理想情况下,我希望检查document.user[]并过滤掉这些值。

jv4diomz

jv4diomz1#

您可以使用脚本查询,如下所示

{
  "query": {
    "script": {
      "script": "if (doc['document.keyword'].size()==1) return true;"
    }
  }
}

相关问题