我在一个关键字域上看到“默认情况下,文本域上禁用了Fielddata”。以下是代码。
{
"aggs": {
"agg_terms_user": {
"terms": {
"field": "user"
}
}
}
}
用户字段的Map如下
user: { type: "keyword" }
由于User字段已将type设置为关键字,因此我不会收到该错误。但是,仍会抛出该错误。
[非法参数异常]默认情况下,在文本字段上禁用FieldData。在[User]上设置fielddata=TRUE,以便通过反转倒排索引将字段数据加载到内存中。请注意,这可能会占用大量内存。或者,改用关键字字段。
我不知道现在该试什么。
4条答案
按热度按时间20jt8wwn1#
@Andrey Borisko的评论是正确的
我用了
而不是
基于尼基尔的例子,它对我很管用。
but5z9lq2#
我找到了这个意外错误背后的原因。ES没有得到正确的重新索引。一旦我先删除了索引,然后重新创建,然后它就开始像魔咒一样工作了。
xtupzzrd3#
请查看Elastic中的文档,其中明确提到我们不能将文本字段用于聚合、排序或脚本编写
Https://www.elastic.co/guide/en/elasticsearch/reference/current/text.html#fielddata-mapping-param
这可以通过使用关键字来实现。尝试按以下方式进行搜索
“field”:“user.keyword”
jdgnovmf4#
面对心跳应用中同样的问题,我通过以下几个步骤解决了这个问题。
1.停止应用程序[在我的例子中,我停止了心跳应用程序]
1.删除APP相关索引。
1.启动应用程序