我正在尝试编写查询以返回唯一城市。我的代码是:
GET /files/_doc/_search
{
"size":"0",
"aggs" : {
"uniq_cities" : {
"terms" : { "field" : "cities" }
}
}
}
我收到如下错误消息:
默认情况下,在文本字段上禁用字段数据。将fielddata = true设置为on [城市]以便通过以下方式将字段数据加载到内存中 反转倒排索引。请注意,这可以使用 大量的记忆。或者,也可以使用关键字字段。
我跑步时
GET /files/_doc/_mapping
我得到:
"cities" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
}
基于上述内容,看来我已经有一个关键字字段。如何解决错误消息?
答案 0 :(得分:2)
该错误显示“默认情况下,文本字段上的字段数据是禁用的”,因为您正尝试在文本字段cities
上应用聚合。它还有一个子字段keyword
,其数据类型为keyword
。因此,将聚合应用于cities.keyword
字段,如下所示:
GET /files/_doc/_search
{
"size":"0",
"aggs" : {
"uniq_cities" : {
"terms" : { "field" : "cities.keyword" }
}
}
}