ElasticSearch Tune for disk usage Translation

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 官网 Tune for disk usage(调整磁盘利用率)文档直译。
1.禁用不需要的属性
index:默认情况下,es会对大多数字段进行索引并添加doc值,以便可以直接索引和聚合它们,但是对于一个必须要使用的字段eg:你需要使用foo这个数值型字段展示直方图,那么这个字段永远不会被过滤掉,那么你可以安全地禁用映射中此字段的索引。

PUT index
{
  "mappings": {
    "_doc": {
      "properties": {
        "foo": {
          "type": "integer",
          "index": false
        }
      }
    }
  }
}
text:该属性在索引中存储了作为文档计分所需要的基本的因素,如果你索引的只是文本而不关注文本分数,那么你可以配置该索引不使用norms参数

PUT index
{
  "mappings": {
    "_doc": {
      "properties": {
        "foo": {
          "type": "text",
          "norms": false
        }
      }
    }
  }
}
text:默认情况下该属性还存储了frequencies和positions两个属性,第一个属性在积分系统中被使用到,第二个在短语查询中使用到。如果你不需要执行短语查询,那么你可以禁用positions属性

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

另外,如果你不关心计分系统,你可以配置es在每个查询中仅仅索引文档。当然你也可以索引这个字段,但是短语查询将会报错并且计分系统会假定每次查询在每个文档中只会出现一次

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

2.不要使用默认动态字符串映射
默认的动态字符串索引将字符串属性索引为文本和关键词,如果你只需要使用其中的一种这将会是很大的浪费,典型的id只需要被索引为关键字而body字段只需要被索引为文本属性。
可以通过在字符串上显式映射类型或者配置动态模板为文本或关键词来禁用上面的特性

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

3.关注你的分片大小
分片越大在存储数据的时候越高效,通过使用更少的分片数量来创建索引从而减少一个索引中的主分片数量来增大分片大小或者通过使用Sharking API来修改目前已经存在的索引
注意:巨大的分片大小会带来一定的缺点,例如需要很久的恢复时间

4.禁用_all
_all属性会索引一个文档中的所有字段值并且会使用巨大的空间。如果你不需要在同个时间索引所有字段,可以将_all属性禁用

5.禁用_source
_source存储文档的原始json数据,如果你不需要这些可以直接禁用了。然而,像update和reindex这种需要访问_source的APIs将不起作用

6.使用best_compression
_source和存储属性会很容易消耗掉不可忽视的磁盘空间。它们可以使用best_compression:codec 来进一步压缩空间

7.聚焦整合
es中的索引会被存储在一个或多个分片上。每一个分片就是一个Lucene索引并且有一个或多个片段组成,这些片段才是真正磁盘文件。越大的片段意味着越高效以及越能存储数据
_forcemerge API可以减少每个分片上的片段数量来增大每个片段的大小。在大多数情况下,每个分片的片段数量可以通过max_num_segments=1被设置为1

8.收缩索引
Shrink API帮助减少一个索引的分片数量。和上面的force_merge API一起使用可以显著地减少分片和片段的数量

9.在合适的情况下使用最小的数字类型
数值类型的类型选择将会在很大程度上影响磁盘使用率。具体地说,使用整值类型存储整数,在合适的情况下浮点数应该被存储在scaled_float中或更小的类型中。使用float而不是double,使用half_float而不是float将会帮助减少存储空间

10.使用索引排序来共置相同的文档
当es存储_source时,它会一次性压缩多个文档以提高整体压缩率。例如文档之间具有相同字段名称甚至字段值是很普遍的,特别是在基数较低或者遵循zipfian分布的情况下。
默认情况下,文档会被压缩在一起以便能够被添加到索引中,如果你提供索引排序那么它们会被有序压缩。有序并且结构,字段以及值都一样的文档会被压缩在一起以提高压缩率

11.文档字段保持相同的顺序
因为多个文档会被压缩到块中存储,如果字段遵循相同的顺序就更有可能在_source找到相同的长串。

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
24天前
|
Java Windows
windows下 安装 Elasticsearch报错warning: usage of JAVA_HOME is deprecated, use ES_JAVA_HOME
windows下 安装 Elasticsearch报错warning: usage of JAVA_HOME is deprecated, use ES_JAVA_HOME
29 0
|
存储 缓存 UED
ElasticSearch Tune for search speed Translation
本译文原文取自https://www.elastic.co/guide/en/elasticsearch/reference/current/tune-for-search-speed.html#_search_rounded_dates
1351 0
|
存储 缓存 Java
ElasticSearch Tune for indexing speed Translation
关于如何提高es查询性能的文章,该文章完全是从官网上拿来翻译的,一字不差,希望通过翻译一边敲键盘一边进行更深层次地理解,另外也能为以后做个记忆储备,谈不上对社区的贡献啦,慢慢学好了
1108 0
|
8天前
|
Java Maven 开发工具
【ElasticSearch 】IK 分词器安装
【ElasticSearch 】IK 分词器安装
15 1
|
25天前
|
数据可视化 索引
elasticsearch head、kibana 安装和使用
elasticsearch head、kibana 安装和使用
|
2月前
|
存储 负载均衡 索引
linux7安装elasticsearch-7.4.0集群配置
linux7安装elasticsearch-7.4.0集群配置
113 0
|
25天前
|
搜索推荐 Java 大数据
ElasticSearch安装
ElasticSearch安装
|
24天前
|
JSON Unix Linux
Elasticsearch如何安装
Elasticsearch如何安装
|
8天前
|
存储 数据可视化 数据挖掘
【ElasticSearch】ElasticSearch安装
【ElasticSearch】ElasticSearch安装
21 2
|
5天前
|
存储 安全 数据管理
【专栏】如何在 Rocky Linux 8 上安装和配置 Elasticsearch
【4月更文挑战第28天】本文指导在Rocky Linux 8上安装配置Elasticsearch,包括添加仓库,运行`yum install elasticsearch`进行安装,修改配置文件如`cluster.name`和`network.host`,启动服务并验证其正常运行。同时,文章提及了内存、文件描述符设置及安全配置,并列出常见问题及解决方法,帮助用户成功搭建Elasticsearch。

热门文章

最新文章