在启动elasticsearch集群时第一台机子启动elasticsearch后报这条错误java.lang.IllegalArgumentException: Fielddata is disabled on text fields by default. Set fielddata=true on [type] in order to load fielddata in memory by uninverting the inverted index. Note that this can however use significant memory. Alternatively use a keyword field instead.
时间: 2023-11-27 18:50:43 浏览: 102
这个错误提示是因为你在使用text类型的字段上启用了聚合(aggregation)或排序(sorting)等需要使用fielddata的功能。fielddata是一种用于在内存中加载倒排索引数据的机制,但它需要占用相当大的内存。
解决这个问题的方法有两个:
1. 在mapping中将该字段的fielddata设置为true,例如:
```
PUT my_index
{
"mappings": {
"my_type": {
"properties": {
"my_field": {
"type": "text",
"fielddata": true
}
}
}
}
}
```
2. 使用keyword类型的字段进行聚合或排序,例如:
```
PUT my_index
{
"mappings": {
"my_type": {
"properties": {
"my_field": {
"type": "keyword"
}
}
}
}
}
```
这样做的话,你就可以在使用聚合或排序功能时避免使用fielddata。
阅读全文