elasticsearch真的很强吗

112 阅读2分钟

「这是我参与2022首次更文挑战的第12天,活动详情查看:2022首次更文挑战」

前言

  • 上文我们将linux系统下命令安装和docker安装两种方式讲解了elasticsearch 。 说真的elasticsearch安装还是很麻烦的。软件安装好了之后我们就开始看看关于es的相关接口和设计吧

什么是elasticsearch

  • elasticsearch主要用于数据搜索方面。和我们传统的关系型数据库不同的是他比较适合做全文检索。因为elasticsearch底层就是搜索引擎。这里我们对比下mysql
elasticsearchmysql
indiciesdatabase
typestables
documentsrows
filedscolumns

索引篇

参数解释

  • 索引配置分为静态配置和动态配置。什么叫静态什么叫动态呢?
  • 静态配置指的是只能在创建或者关闭索引的时候配置。
  • 动态索引指的是在索引运行期间可以修改的配置。
  • 值得注意的是,如果在索引关闭后去修改静态或者动态参数可能会导致错误,这种错误是无法修复的,只能通过重新创建索引修复

静态配置

number of shards

  • 分片数。每个索引上至少拥有1个分片作为主分片。最多拥有1024个分片。限制1024主要是为了防止因为资源分配问题导致集群不稳定问题。该限制也可以修改,通过节点上ES_JAVA_OPTS="-Des.index.max_number_of_shards=128进行修改。

number_of_routing_shards

  • 路由分片数。依赖于number_of_shards;即索引主分片数量。该配置是elsticsearch对索引分裂的操作。
  • 例如,number_of_shards=5&number_of_routing_shards=30。那么分片数量就会变成30 。 30是从5倍数扩张来的。在ES中默认按2倍最大支持扩展到1024分片数量。
  • 此时我们新建一个索引名称叫maltcloud_charted 。

image-20211222143835455

  • 然后我们设置改索引未只读
 PUT /maltcloud_charted/_settings
 {
   "settings": {
     "index.blocks.write"true 
  }
 }
  • 最后我们执行索引分裂
 POST maltcloud_charted/_split/maltcloud_new
 {
   "settings": {
     "index.number_of_shards": 3
  }
 }
  • 因为3是6的约数,所以我们可以分裂成3个主分片。