AWS Elasticsearch脚本

时间:2017-10-17 07:31:45

标签: python amazon-web-services elasticsearch

我在AWS上有一个托管的Elasticsearch(5.3)实例。 我想对Elasticsearch中的结果进行排序,但我总是得到

TransportError(500, u'search_phase_execution_exception', u'runtime error')

我不知道为什么。 在Kibana中查看它会出现以下错误。

"caused_by": {
  "type": "script_exception",
  "reason": "runtime error",
  "script_stack": [
    "org.elasticsearch.index.mapper.TextFieldMapper$TextFieldType.fielddataBuilder(TextFieldMapper.java:336)",
    "org.elasticsearch.index.fielddata.IndexFieldDataService.getForField(IndexFieldDataService.java:111)",
    "org.elasticsearch.search.lookup.LeafDocLookup$1.run(LeafDocLookup.java:87)",
    "org.elasticsearch.search.lookup.LeafDocLookup$1.run(LeafDocLookup.java:84)",
    "java.security.AccessController.doPrivileged(Native Method)",
    "org.elasticsearch.search.lookup.LeafDocLookup.get(LeafDocLookup.java:84)",
    "doc['value'].value.length()",
    "    ^---- HERE"
  ],
  "script": "doc['value'].value.length()",
  "lang": "painless",
  "caused_by": {
    "type": "illegal_argument_exception",
    "reason": "Fielddata is disabled on text fields by default. Set fielddata=true on [value] in order to load fielddata in memory by uninverting the inverted index. Note that this can however use significant memory."
  }
}

我的疑问是:

"query": {
    "query_string": {
      "fields": [
        "value"
      ],
      "query": "*a*"
    }
  },
  "sort": {
    "_script": {
      "script": "doc['value'].value.length()",
      "order": "asc",
      "type": "string"
    }
  }

脚本是否适用于AWS Elasticsearch?

我只想按字符串长度

命令我的结果

0 个答案:

没有答案