「这是我参与2022首次更文挑战的第12天,活动详情查看:2022首次更文挑战」
前言
- 上文我们将linux系统下命令安装和docker安装两种方式讲解了elasticsearch 。 说真的elasticsearch安装还是很麻烦的。软件安装好了之后我们就开始看看关于es的相关接口和设计吧
什么是elasticsearch
- elasticsearch主要用于数据搜索方面。和我们传统的关系型数据库不同的是他比较适合做全文检索。因为elasticsearch底层就是搜索引擎。这里我们对比下mysql
| elasticsearch | mysql |
|---|---|
| indicies | database |
| types | tables |
| documents | rows |
| fileds | columns |
索引篇
参数解释
- 索引配置分为静态配置和动态配置。什么叫静态什么叫动态呢?
- 静态配置指的是只能在创建或者关闭索引的时候配置。
- 动态索引指的是在索引运行期间可以修改的配置。
- 值得注意的是,如果在索引关闭后去修改静态或者动态参数可能会导致错误,这种错误是无法修复的,只能通过重新创建索引修复
静态配置
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 。
- 然后我们设置改索引未只读
PUT /maltcloud_charted/_settings
{
"settings": {
"index.blocks.write": true
}
}
- 最后我们执行索引分裂
POST maltcloud_charted/_split/maltcloud_new
{
"settings": {
"index.number_of_shards": 3
}
}
- 因为3是6的约数,所以我们可以分裂成3个主分片。