elasticsearch ==检查两个字段elasticsearch,elasticsearch,scripting,compare,equality,elasticsearch,Scripting,Compare,Equality" /> elasticsearch ==检查两个字段elasticsearch,elasticsearch,scripting,compare,equality,elasticsearch,Scripting,Compare,Equality" />

elasticsearch ==检查两个字段elasticsearch

elasticsearch ==检查两个字段elasticsearch,elasticsearch,scripting,compare,equality,elasticsearch,Scripting,Compare,Equality,我有一个场景,比如需要检查两个字段是否相等。 假设我有一个带有映射的索引my_index "field_one": { "type": "text", "fields": { "keyword": { "type": "keyword", "ignore_above": 256 }, "regexkeyword": { "ty

我有一个场景,比如需要检查两个字段是否相等。 假设我有一个带有映射的索引my_index

    "field_one": {
        "type": "text",
        "fields": {
          "keyword": {
            "type": "keyword",
            "ignore_above": 256
          },
          "regexkeyword": {
            "type": "keyword",
            "normalizer": "lowercase_normalizer"
          }
        },
        "analyzer": "simple"
      },
     "field_two": {
        "type": "text",
        "fields": {
          "keyword": {
            "type": "keyword",
            "ignore_above": 256
          },
          "regexkeyword": {
            "type": "keyword",
            "normalizer": "lowercase_normalizer"
          }
        },
        "analyzer": "simple"
      }
这里我需要编写一个查询,通过匹配
field\u one
field\u two
这是我试过的

 {
 "script_fields": {
     "adas": {
        "script": {
           "inline": "'field_one.keyword' == 'field_two.keyword'",
           "lang": "painless"
         }
     }
 }

注意:弹性版本:5.5.3

我认为语法是正确的,但我在ES.X中没有测试它的实例

{
 "script_fields": {
     "adas": {
        "script": {
           "inline": "doc['field_one.keyword'].value == doc['field_two.keyword'].value",
           "lang": "painless"
         }
     }
 }

您的映射有“field_one”和“field_two”,但您的查询引用了“field_one”和“field_two”。@Adam这可能是一个拼写错误,但字段被正确引用。这两个语法给出了相同的结果,但不是预期的数据。