==检查两个字段elasticsearch

时间:2018-07-19 13:47:24

标签: elasticsearch scripting compare equality

我有需要检查两个字段是否相等的情况。 假设我有一个带有映射的索引 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_onefield_two来获取数据 这是我尝试过的

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

注意:弹性版本: 5.5.3

1 个答案:

答案 0 :(得分:0)

我认为语法是,但是我没有在ES .X中进行实例测试

SELECT c.cal_procedure ,           
c.description ,           
c.active ,           
c.create_user ,           
c.create_date ,           
c.edit_user ,           
c.edit_date ,           
c.id,
(SELECT COUNT(*) FROM cal_procedure_docs where cal_procedure = c.cal_procedure) AS cpd
FROM cal_procedure c