elasticsearch 不带动态脚本的术语频率总和聚合脚本,elasticsearch,groovy,elasticsearch,Groovy" /> elasticsearch 不带动态脚本的术语频率总和聚合脚本,elasticsearch,groovy,elasticsearch,Groovy" />

elasticsearch 不带动态脚本的术语频率总和聚合脚本

elasticsearch 不带动态脚本的术语频率总和聚合脚本,elasticsearch,groovy,elasticsearch,Groovy,我试图为我的硕士论文评估一个web应用程序。为此,我想做一个用户研究,准备elasitc found中的数据,并将我的web应用程序发送给测试人员。据我所知,出于安全原因,elastic found不允许动态脚本。我尝试重新构建以下动态脚本查询: GET my_index/document/_search { "query": { "match_all":{} }, "aggs": { "stadt": { "sum": { "script

我试图为我的硕士论文评估一个web应用程序。为此,我想做一个用户研究,准备elasitc found中的数据,并将我的web应用程序发送给测试人员。据我所知,出于安全原因,elastic found不允许动态脚本。我尝试重新构建以下动态脚本查询:

GET my_index/document/_search
{
  "query": {
    "match_all":{}
  },
  "aggs": {
    "stadt": {
      "sum": {
        "script": "_index['textBody']['frankfurt'].tf()"
      }
    }
  }  
}
此查询汇总了
frankfurt
术语的文档字段
textBody
中的所有术语频率

为了在不使用动态脚本的情况下重新格式化查询,我查看了一下,但仍然会出现解析错误

我的做法是:

GET my_index/document/_search
{
  "query": {
    "match_all":{}
  },
  "aggs": {
    "stadt": {
      "sum": {
        "script": {
            "script_id": "termFrequency",
            "lang" : "groovy",
            "params": {
              "term" : "frankfurt"
            }
        }        
      }
    }
  }  
}
以及
scripts
目录中的文件
termFrequency.groovy

_index['textBody'][term].tf()
我得到以下解析错误:

Parse Failure [Unexpected token START_OBJECT in [stadt].]

假设文件位于
config/scripts
目录中,这是正确的语法

{
  "query": {
    "match_all": {}
  },
  "aggs": {
    "stadt": {
      "sum": {
        "script_file": "termFrequency",
        "lang": "groovy",
        "params": {
          "term": "frankfurt"
        }
      }
    }
  },
  "size": 0
}
此外,术语应该是
变量
,而不是
字符串
,因此应该是

_index['textBody'][term].tf()

希望这有帮助

您使用的是什么版本的ES?