我的elasticsearch数据包含大量不需要搜索的字段。但我想获得诸如百分位数,中位数,计数,平均数之类的汇总。等在这些领域。
是否有一种方法可以禁用字段的可搜索性,但仍使其可聚合?
答案 0 :(得分:1)
默认情况下,大多数字段都已建立索引,因此可以搜索它们。如果要使字段不可搜索,只需将其index
参数设置为false
,并将doc_values
设置为true
。
根据弹性文档:
所有支持doc值的字段均默认启用。
因此,您无需为此类字段显式设置"doc_values": true
。
例如
{
"mappings": {
"_doc": {
"properties": {
"only_agg": {
"type": "keyword",
"index": false
}
}
}
}
}
如果在上例中尝试搜索字段only_agg
,elastic将抛出异常,其原因如下:
Cannot search on field [only_agg] since it is not indexed.
答案 1 :(得分:0)