我在关键字字段上收到“默认情况下,文本字段上的字段数据已禁用”。下面是代码。
{
"aggs": {
"agg_terms_user": {
"terms": {
"field": "user"
}
}
}
}
用户字段的映射如下
user: { type: "keyword" }
由于用户字段的类型设置为关键字,因此我不会收到该错误。但是,该错误仍然会引发。
[illegal_argument_exception]默认情况下,在文本字段上禁用字段数据。在[user]上设置fielddata = true,以通过反转取反的索引将字段数据加载到内存中。请注意,这可能会占用大量内存。或者,也可以使用关键字字段。
我不知道现在该怎么做。
答案 0 :(得分:2)
@Andrey Borisko对他的评论是正确的。 我使用了基于Nikhil示例的“ user.keyword”,它对我有用。
答案 1 :(得分:0)
我发现了意外错误的原因。 ES没有正确重新索引。一旦我先删除了索引,然后重新创建它,它就开始像超级按钮一样工作。
答案 2 :(得分:0)
查看弹性中的文档,其中明确提到我们不能将文本字段用于聚合、排序或脚本
https://www.elastic.co/guide/en/elasticsearch/reference/current/text.html#fielddata-mapping-param
这可以在关键字使用的帮助下实现。尝试搜索
"field" : "user.keyword"