ES执行查询方法报错
问题描述:
Text fields are not optimised for operations that require per-document field data like aggregations and sorting, so these operations are disabled by default. Please use a keyword field instead. Alternatively, set fielddata=true on [DREDATE] in order to load field data by uninverting the inverted index. Note that this can use significant memory.
在使用Elasticsearch进行聚合操作或排序时,不允许对文本类型(text)的字段进行聚合或排序。
默认情况下,文本字段并不适合这些需要每个文档都加载相关数据的操作,因此这些操作会被禁用。
有两种解决方案:
- 将该字段更改为关键字(keyword)类型,这种类型通常更适合聚合和排序操作。
- 在该字段上设置
fielddata=true
,以便加载该字段的反向索引数据,但需要注意的是,这可能会占用大量内存。(不推荐)
解决方法:
在工具中执行以下命令
PUT xxxx/_mapping
{
"properties": {
"DREDATE": {
"type": "keyword"
}
}
}
验证:
若 PUT 请求得到了 “acknowledged”: true 的响应,则表示该请求已经被接受并且更改成功。