ElasticSearch磁盘率使用调优

本文介绍如何通过调整Elasticsearch的索引设置来优化存储效率,包括关闭不必要的字段索引、调整文本字段的存储选项、禁用_all字段、使用最佳压缩选项以及选择合适的数值类型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#关闭你不需要使用的特性

默认情况下ES会为大多数字段进行索引并且添加doc,这样能够在查询和聚合的时候更快,例如你有一个数值型的字段叫做foo,你需要用这个字段来做柱状图,但是你不会使用它进行过滤,你可以关闭掉这个字段的索引

PUT index
{
  "mappings": {
    "type": {
      "properties": {
        "foo": {
          "type": "integer",
          "index": false
        }
      }
    }
  }
}

文本字段存储了一些辅助信息来让文档能够被评分,假如你不需要评分的功能,可以关掉它

PUT index
{
  "mappings": {
    "type": {
      "properties": {
        "foo": {
          "type": "text",
          "norms": false
        }
      }
    }
  }
}

文本字段还存储了词频和短语的位置信息,假如你不需要执行短语查询,也可以让ES不存位置信息

PUT index
{
  "mappings": {
    "type": {
      "properties": {
        "foo": {
          "type": "text",
          "index_options": "freqs"
        }
      }
    }
  }
}

又或者你根本就不关心评分,你可以让ES只是匹配索引的term,这样的话短语查询的出错率会变高,评分也会假设每个词条在每个文档上只出现了一次

PUT index
{
  "mappings": {
    "type": {
      "properties": {
        "foo": {
          "type": "text",
          "norms": false,
          "index_options": "freqs"
        }
      }
    }
  }
}

#不要使用默认的动态模板建立索引

keyword就是完全匹配的,text是分词类型的,话说这个东西在6.0就会被移除了,ES真是完全就不考虑向下兼容么。。。

默认的动态字符串模板会把字符串的文本和关键字都索引起来,假如你只需要其中一个的话,这就有点浪费。例如id只需要索引为keyword,而文本内容只需要被存成text字段 这个选项可以在模板里面操作或者在索引配置里面操作

PUT index
{
  "mappings": {
    "type": {
      "dynamic_templates": [
        {
          "strings": {
            "match_mapping_type": "string",
            "mapping": {
              "type": "keyword"
            }
          }
        }
      ]
    }
  }
}

#禁用_all _all字段存储了文档的所有信息,假如你不需要一次搜素所有的字段,禁用掉它

#使用 best_compression 选项 使用这个选项能使得索引得到更加有效的压缩

#使用最小的数值类型 根据实际使用情况,整形就存在整形类型上,比较小的float就使用scaled_float或者更小的话就使用half_float,这都能有效的节省存储

转载于:https://my.oschina.net/xiaomaijiang/blog/830174

### 如何使用 Keil5 Hex 文件 对于仅拥有已编译好的 hex 文件而无源文件的情况,在 Keil V5 平台上直接hex 文件至单片机(如华大单片机)需采取特定的方法,因为直接调用该平台进行此类操作不可行[^1]。 #### 设置 Output 路径 进入 Keil 的 output 设置界面,指定要录的 hex 文件的具体位置。确保在路径输入框中填完整的 hex 文件名称并附带 `.hex` 扩展名;缺少此扩展名可能导致系统继续尝试录先前编译的结果而非所选的 hex 文件[^3]。 #### 配置 Flash 工具选项 针对不同类型的微控制器(MCU),可能还需调整 flash 下载工具的相关配置参数以匹配目标设备的要求。这一步骤通常涉及选择合适的编程算法以及设定通信接口等细节[^2]。 #### 启动下载过程 完成上述准备工作之后,可以通过点击调试窗口内的 “Download” 或者快捷菜单里的相应命令来启动实际的程序入流程。如果一切顺利的话,软件会自动连接硬件并将选定的 hex 数据传输到 MCU 中存储起来[^4]。 ```python # Python 示例代码用于说明自动化脚本概念 (并非真实实现) def download_hex_to_mcu(hex_file_path, mcu_type): """ 自定义函数模拟将 HEX 文件下载到指定型号的 MCU 上 参数: hex_file_path -- 完整路径字符串指向待上传的 .hex 文件 mcu_type -- 字符串表示的目标单片机类型标识符 返回值: 成功则返回 True ,失败抛出异常信息 """ try: configure_output_settings(hex_file_path) # 设定输出设置 select_flash_tool(mcu_type) # 挑选适合的闪存工具 execute_download_command() # 发送下载指令 return True # 表明成功结束 except Exception as e: raise RuntimeError(f"Failed to upload {hex_file_path}: {e}") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值