【问题标题】:How to compare field with _id in elasticsearch script?如何在elasticsearch脚本中将字段与_id进行比较?
【发布时间】:2019-12-07 12:07:54
【问题描述】:
{
   "query":{
      "bool":{
         "must":{
            "match_all":{

            }
         },
         "filter":[
            {
               "script":{
                  "source":"doc['id'].value == doc['_id'].value",
                  "lang":"painless"
               }
            }
         ]
      }
   },
   "track_total_hits":true
}

所以doc['_id'].value 是导致错误的行。我应该如何将字段值与 _id 值进行比较?

在普通文档中,“_id”是string,“id”是long,但我打破了一些,现在它们都是strings,我怎样才能找到它们?

【问题讨论】:

  • 您遇到了什么错误?

标签: elasticsearch elasticsearch-painless


【解决方案1】:

我认为您的 id 字段类型是 keyword,所以;没有.keyword,你不能打电话给doc['id'].value

试试这个:

"script": {
    "script": {
        "source": "doc['id.keyword'].value == doc['_id'].value",
        "lang": "painless"
    }
}

【讨论】:

  • 不是关键字但我错过了"script":{"script": ...}
猜你喜欢
  • 2021-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-05
相关资源
最近更新 更多