--- title: "索引存储类型配置" date: 2026-01-10 lastmod: 2026-01-10 description: "控制索引存储类型的配置项说明" tags: ["索引配置", "存储管理", "性能优化"] summary: "配置项作用 # index.store.type 配置项控制索引数据在磁盘上的存储类型。不同的存储类型提供不同的性能特性和功能支持,如内存映射(mmap)可提高某些场景下的性能。 配置项类型 # 该配置项为静态配置,需要在创建索引时设置,创建后不可修改。 默认值 # 根据系统自动选择: - 64位 JVM 且支持 mmap → hybridfs - 其他情况 → fs 是否必需 # 可选配置项(有默认值) 可选值 # 值 说明 fs 文件系统存储(默认) niofs NIO 文件系统存储 mmapfs 内存映射文件系统 hybridfs 混合存储系统 simplefs 简单文件系统(仅用于测试) 配置格式 # // 创建索引时指定 PUT /my_index { "settings": { "index." --- ## 配置项作用 `index.store.type` 配置项控制索引数据在磁盘上的存储类型。不同的存储类型提供不同的性能特性和功能支持,如内存映射(mmap)可提高某些场景下的性能。 ## 配置项类型 该配置项为**静态配置**,需要在创建索引时设置,创建后不可修改。 ## 默认值 ``` 根据系统自动选择: - 64位 JVM 且支持 mmap → hybridfs - 其他情况 → fs ``` ## 是否必需 **可选配置项**(有默认值) ## 可选值 | 值 | 说明 | |---|------| | `fs` | 文件系统存储(默认) | | `niofs` | NIO 文件系统存储 | | `mmapfs` | 内存映射文件系统 | | `hybridfs` | 混合存储系统 | | `simplefs` | 简单文件系统(仅用于测试) | ## 配置格式 ```json // 创建索引时指定 PUT /my_index { "settings": { "index.store.type": "niofs" } } // 使用默认(推荐) PUT /my_index { "settings": { "index.store.type": "fs" } } // 使用内存映射 PUT /my_index { "settings": { "index.store.type": "mmapfs" } } ``` ## 存储类型说明 ### 1. fs(文件系统存储) 默认存储类型,根据系统自动选择最佳实现: - 64位系统支持 mmap → 使用 hybridfs - 32位系统或 mmap 不可用 → 使用 niofs **特点:** - 自动优化 - 兼容性好 - 推荐用于生产环境 ### 2. niofs(NIO 文件系统) 使用 Java NIO 的文件系统实现。 **特点:** - 跨平台兼容性好 - 性能中等 - 不依赖 mmap ### 3. mmapfs(内存映射文件系统) 使用内存映射技术访问文件。 **特点:** - 某些场景下性能更好 - 依赖操作系统的 mmap 支持 - 可能受地址空间限制 ### 4. hybridfs(混合存储系统) 结合 mmap 和普通文件访问。 **特点:** - 对小文件使用 mmap - 对大文件使用普通访问 - 平衡性能和资源使用 ### 5. simplefs(简单文件系统) 仅用于测试目的,不建议生产使用。 **特点:** - 简单实现 - 性能较差 - 仅用于测试 ## 使用场景 ### 1. 默认配置(推荐) ```json { "settings": { "index.store.type": "fs" } } ``` 适用于大多数生产环境。 ### 2. 明确指定 NIO ```json { "settings": { "index.store.type": "niofs" } } ``` **适用场景:** - 需要跨平台一致性 - 不使用 mmap ### 3. 内存映射模式 ```json { "settings": { "index.store.type": "mmapfs" } } ``` **适用场景:** - 64位 JVM - 大量随机读 - 确保支持 mmap ## 推荐设置建议 | 环境 | 推荐类型 | 说明 | |-----|---------|------| | 生产环境 | fs | 自动选择最佳类型 | | 32位 JVM | niofs | 不支持 mmap | | 64位 JVM | fs/hybridfs | 自动选择 | | 测试环境 | simplefs | 仅测试用途 | ## 性能对比 | 存储类型 | 读性能 | 写性能 | 内存占用 | 跨平台 | |---------|-------|-------|---------|-------| | fs | 好 | 好 | 中 | 好 | | niofs | 中 | 中 | 低 | 好 | | mmapfs | 很好 | 中 | 高 | 中 | | hybridfs | 好 | 好 | 中 | 好 | ## 监控建议 ```bash # 查看索引存储类型 GET /my_index/_settings?filter_path=*.store.type # 查看所有索引配置 GET /_all/_settings?filter_path=*.store.type # 查看节点存储支持 GET /_nodes/settings?filter_path=*.store.allow_mmap ``` ## 注意事项 1. **静态配置**:创建索引后不可修改 2. **创建后不可变**:存储类型在索引创建后固定 3. **与 mmap 相关**:mmapfs 需要系统支持 4. **性能影响**:不同类型对性能有影响 5. **平台兼容性**:某些类型可能在不同系统表现不同 6. **生产推荐**:生产环境建议使用默认值