如何修复关键字字段的 ElasticSearch“默认情况下在文本字段上禁用 Fielddata”
How to fix ElasticSearch ‘Fielddata is disabled on text fields by default’ for keyword field
我在关键字字段上得到 "Fielddata is disabled on text fields by default"。下面是代码。
{
"aggs": {
"agg_terms_user": {
"terms": {
"field": "user"
}
}
}
}
用户字段的映射如下
user: { type: "keyword" }
由于用户字段的类型设置为关键字,所以我不应该收到错误。但是,仍然会抛出错误。
[illegal_argument_exception] Fielddata is disabled on text fields by default. Set fielddata=true on [user] 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.
我不知道现在该尝试什么。
我找到了意外错误背后的原因。 ES 未正确重新编制索引。一旦我先删除索引然后重新创建它,它就开始像魅力一样工作。
是正确的
我用过
"field": "user.keyword"
而不是
"field": "user"
基于 Nikhil 的示例,它对我有用。
查看 elastic 中的文档,其中明确提到我们不能将文本字段用于聚合、排序或脚本
https://www.elastic.co/guide/en/elasticsearch/reference/current/text.html#fielddata-mapping-param
这可以通过使用关键字来实现。尝试按
搜索
“字段”:“user.keyword”
在 heartbeat 中遇到同样的问题 application.I 已经按照以下步骤解决了这个问题。
停止应用程序[在我的例子中我停止了心跳
申请]
删除与应用程序相关的索引。
启动应用程序
我在关键字字段上得到 "Fielddata is disabled on text fields by default"。下面是代码。
{
"aggs": {
"agg_terms_user": {
"terms": {
"field": "user"
}
}
}
}
用户字段的映射如下
user: { type: "keyword" }
由于用户字段的类型设置为关键字,所以我不应该收到错误。但是,仍然会抛出错误。
[illegal_argument_exception] Fielddata is disabled on text fields by default. Set fielddata=true on [user] 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.
我不知道现在该尝试什么。
我找到了意外错误背后的原因。 ES 未正确重新编制索引。一旦我先删除索引然后重新创建它,它就开始像魅力一样工作。
我用过
"field": "user.keyword"
而不是
"field": "user"
基于 Nikhil 的示例,它对我有用。
查看 elastic 中的文档,其中明确提到我们不能将文本字段用于聚合、排序或脚本
https://www.elastic.co/guide/en/elasticsearch/reference/current/text.html#fielddata-mapping-param
这可以通过使用关键字来实现。尝试按
搜索“字段”:“user.keyword”
在 heartbeat 中遇到同样的问题 application.I 已经按照以下步骤解决了这个问题。
停止应用程序[在我的例子中我停止了心跳 申请]
删除与应用程序相关的索引。
启动应用程序