我想使用脚本执行以下操作:
{
"query": {
"match_all": {}
},
"facets": {
"user_facet": {
"terms": {
"field": "user_id",
"script": "term + \"_\" + _source.code"
}
}
}
}
这与此问题中给出的答案类似: elastic search double facet
我唯一的问题是我的user_id和代码字段是长类型,而不是字符串。有没有办法让它们成为字符串,以便它们可以与脚本结合使用?
我得到的具体错误是:
nested: ClassCastException[java.lang.String cannot be cast to java.lang.Number];
答案 0 :(得分:3)
这可能听起来很荒谬,但我遇到了同样的问题,我修复它的方式(对于一个非常类似的问题)是放弃“字段”规范,使它看起来像这样:
{
"query": {
"match_all": {}
},
"facets": {
"user_facet": {
"terms": {
"script": "term + \"_\" + _source.code"
}
}
}
}
我认为它试图将“脚本”执行的输出转换回字段类型,导致类转换异常。