无痛脚本 Elastic Search:尝试从文档访问值时出现变量未定义错误

2024-01-14

我正在尝试按照官方文档学习 Elastic Search 中的无痛脚本编写。 (https://www.elastic.co/guide/en/elasticsearch/painless/6.0/painless-examples.html https://www.elastic.co/guide/en/elasticsearch/painless/6.0/painless-examples.html )

我正在使用的文档示例:

{
          "uid" : "CT6716617",
          "old_username" : "xyz",
          "new_username" : "abc"

    }

使用 params._source 访问文档值的以下脚本字段查询有效:

{
      "script_fields": {
        "sales_price": {
          "script": {
            "lang":   "painless",
            "source": "(params._source.old_username != params._source.new_username) ? \"change\" : \"nochange\"",
            "params": {
              "change": "change"
            }
          }
        }
      }
    }

相同的查询但使用文档映射来访问值失败:

{
      "script_fields": {
        "sales_price": {
          "script": {
            "lang":   "painless",
            "source": "(doc['old_username'] != doc['new_username']) ? \"change\" : \"nochange\"",
            "params": {
              "change": "change"
            }
          }
        }
      }
    } 

我收到的错误消息是:

"caused_by" : {
            "type" : "illegal_argument_exception",
            "reason" : "Variable [old_username] is not defined."
          }

根据文档,这两种方法都应该有效,尤其是第二种方法。我不确定我在这里缺少什么。?


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无痛脚本 Elastic Search:尝试从文档访问值时出现变量未定义错误 的相关文章

随机推荐