elasticsearch - Elasticsearch - 使字段可聚合但不可搜索
问题描述
我的 elasticsearch 数据有大量不需要搜索的字段。但我想得到像百分位数、中位数、计数、平均值这样的聚合。等在这些领域。
有没有办法禁用字段的可搜索性但让它仍然可以聚合?
解决方案
默认情况下,大多数字段都已编入索引,因此可搜索。如果您想让一个字段不可搜索,您只需将其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.
推荐阅读
- python - Spotipy API 的非法 URI 重定向
- c - 对复合语句进行分类
- python - 无法在 Python 中获取与 Selenium 的元素链接
- git - 如何更改 git 提交者的名称?
- java - 使用选定的学生班级在微调器上过滤 Recyclerview?
- database - 在 AWS 中创建新的数据库微服务
- docker - 如何集成 pyenv、诗歌和 docker?
- javascript - 选择选项时无法更改变体图像
- docker - 如何修复“docker:来自守护进程的错误响应:无法链接到非运行容器:/db AS /odoo/db
- bash - 为什么即使在 bash 中打印 100 位数字后我的计时器仍显示相同的值