如何在Elasticsearch脚本中将字段与_id进行比较?

时间:2019-12-07 12:07:54

标签: elasticsearch elasticsearch-painless

{
   "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,如何找到它们?< / p>

1 个答案:

答案 0 :(得分:0)

我认为您的 id 字段类型为关键字,因此;您不能在没有doc['id'].value的情况下致电.keyword

尝试一下:

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