5

我想使用脚本来执行以下操作:

{
  "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];
4

1 回答 1

3

这听起来可能很荒谬,但我遇到了同样的问题,我修复它的方法(对于非常相似的问题)是删除“字段”规范,使其看起来像这样:

{
  "query": {
  "match_all": {}
},
  "facets": {
    "user_facet": {
      "terms": {
        "script": "term + \"_\" + _source.code"
      }
    }
  }
}

我认为它试图将“脚本”执行的输出转换回字段的类型,导致类转换异常。

于 2013-12-04T01:56:56.670 回答