gpt4 book ai didi

groovy - Elastic Search,字段名以at号开头

转载 作者:行者123 更新时间:2023-11-29 02:57:08 26 4
gpt4 key购买 nike

我正在使用 elasticsearch 1.3.4 和 groovy。我想做的是在 Elasticsearch 查询中使用脚本:

{
"size": 0,
"query": {
"bool": {
"must": [
{
"range": {
"@timestamp": {
"gte": "2014-12-08T03:40:00.000Z",
"lte": "2014-12-08T03:40:59.999Z"
}
}
}
],
"must_not": []
}
},
"facets": {
"myFacet": {
"terms": {
"script": "doc['@field1'].value + ':' + doc['@field2'].value"
}
}
}
}

出于某种原因,字段名称以 at 符号开头。问题是 groovy 将 at 符号视为特殊字符 ( http://groovy.codehaus.org/Operators )。来自 groovy 的错误消息:

nested: GroovyScriptCompilationException[MultipleCompilationErrorsException[startup failed:\nScript78.groovy: 1: unable to resolve class field , unable to find class for annotation\n @

那么是否有可能让 groovy 使用以“@”符号开头的字段?

最佳答案

将“@”替换为 unicode value将阻止它被 Groovy 处理

例如替换

doc['@field1'].value

doc['\u0040field1'].value

关于groovy - Elastic Search,字段名以at号开头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27450948/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com