在Elasticsearch中,通过设置"index": false关闭低频字段的倒排索引构建是常见的优化手段,以下是关键要点:
一、核心机制
倒排索引禁用
设置index: false后,字段不会生成倒排索引,无法通过常规查询(如match、term)检索该字段。但字段值仍会存储在_source中,可通过返回原始数据获取。特殊字段类型的例外数值、日期、布尔等类型字段即使设置index: false,仍可能通过doc_values实现排序和聚合。
二、适用场景
低频访问字段:如日志中的辅助信息、冗余元数据等无需搜索的字段。
存储优化:减少索引体积,提升写入速度(尤其适用于高频写入场景)。
三、配置示例
定义Mapping时显式关闭索引:
PUT my_index
{
"mappings": {
"properties": {
"metadata": {
"type": "text",
"index": false // 禁止构建倒排索引
}
}
}
}
四、注意事项
查询限制:禁用索引后,直接查询该字段会返回空结果。
性能权衡:需评估字段的实际使用需求,避免误关闭高频查询字段。
若需彻底禁用字段存储,需同步设置"enabled": false。