ElasticSearch整理
2019-11-06 本文已影响0人
我就是小政政
基本介绍







Shard机制




分词原理







路由原理

存储原理








常用api介绍






Filter Cache

一些优化

历史数据
使用es内置脚本局部更新
#第一步,创建megacorp employee 10的文档,内容为
PUT /megacorp/employee/10/_create
{
"name": "小草",
"age": 16,
"address": "北京",
"tags": [
"开发同学",
"前端同学",
"测试同学"
]
}
#第二步,将文档内容+1
POST /megacorp/employee/10/_update
{
"script": {
"inline": "ctx._source.age+=1"
}
}
#第三步,将文档内容中的数组,添加一个 “运维同学”
POST /megacorp/employee/10/_update
{
"script" : {
"inline": "ctx._source.tags.add(params.new_tag)",
"params": {
"new_tag": "运维同学"
}
}
}
#第四步,查看文档内容
GET /megacorp/employee/10
#重新覆盖文档内容
POST /megacorp/employee/10/_update
{
"doc": {
"name": "小草",
"age": 16,
"address": "北京",
"tags": [
"开发同学",
"前端同学",
"测试同学"
]
}
}
创建后文档内容:
{
"_index": "megacorp",
"_type": "employee",
"_id": "10",
"_version": 7,
"found": true,
"_source": {
"name": "小草",
"age": 16,
"address": "北京",
"tags": [
"开发同学",
"前端同学",
"测试同学"
]
}
}
最终文档内容:
{
"_index": "megacorp",
"_type": "employee",
"_id": "10",
"_version": 9,
"found": true,
"_source": {
"name": "小草",
"age": 17,
"address": "北京",
"tags": [
"开发同学",
"前端同学",
"测试同学",
"运维同学"
]
}
}
可以发现age字段中的值已经+1,tags字段中的值也添加了一个“运维同学”。
阿里es集群参考规格
规格 | 最大节点数(计算公式:集群最大节点数 = 单节点CPU * 5) | 单节点最大磁盘(查询)(计算公式:单节点Mem(G) * 10) | 单节点最大磁盘(日志)(计算公式:单节点Mem(G) * 50) | 单节点最大磁盘(通常)(计算公式:单节点Mem(G) * 30) |
---|---|---|---|---|
2C 4G | 10 (2核*5) | 40 GB (4g内存*10) | 200 GB | 100 GB |
2C 8G | 10 | 80 GB | 400 GB | 200 GB |
4C 16G | 20 | 160 GB | 800 GB | 512 GB |
8C 32G | 40 | 320 GB | 1.5 TB | 1 TB |
16C 64G | 50 | 640 GB | 2 TB | 2 TB |
- 建议在小规格节点下,单个shard大小不要超过30GB。对于更高规格的节点,单个shard大小不要超过50GB。
- 对于日志分析或者超大索引场景,建议单个shard大小不要超过100GB。
- shard的个数(包括副本)要尽可能等于节点数,或者是节点数的整数倍。
- 通常建议单个节点上同一索引的shard个数不要超5个。
添加模板
每天都回自动创建一个索引