在Elasticsearch查询中使用脚本时,根据其长度过滤构面术语

时间:2013-11-08 13:17:50

标签: elasticsearch mvel

我想创建一个术语facet,它只返回长度大于某个值的项的结果。理想情况下它看起来像:

 "facets": {
    "myFacet": {
      "terms": {
        "field": "content",
        "size": 10,
        "script": "term.length > 3 ? true: false"
      }
    }
  }

但是,MVEL脚本语言似乎不喜欢术语。长度属性。还有另一种方法来实现这一目标吗? MVEL文档没有提供有关此用例的大量信息。

1 个答案:

答案 0 :(得分:3)

根据elasticsearch(Error: could not access: length; in class: java.lang.String)mvel委托lengthjava.lang.String类的错误,您应该使用java.lang.String#length()方法。

"facets": {
  "myFacet": {
    "terms": {
      "field": "content",
      "size": 10,
      "script": "term.length() > 3 ? true: false"
    }
  }
}