TAG
Elasticsearch
17 篇笔记
- 1.1 Elasticsearch transloghistorical
1. translog是什么 Elasticsearch执行写入操作(index或者delete)的时候会把该操作写入日志 2. 为什么需要translog - 防止宕机造成数据丢失 - Elasticsearch的数据 refresh 进入filesystem cache会即searchable,
- 1.2 Elasticsearch索引实现historical
1. 倒排索引是什么 - 倒排索引.md 2. Elasticsearch的倒排索引工作原理 比如两个文档 搜索Father likes cat 2.1. 建立索引 1. 首先是分词 2. 然后是normalization:就是把语态、单复数等的转换 3. 最后记录词和文档的关系 2.2. 搜索 1
- 1.3 Elasticsearch CRUD流程historical
1. 写入数据 1. 客户端随机选取一个node发送写请求 2. 这个node作为协调节点,根据 id计算document应该在哪个shard上,即 hash( id) % number of primary shards ,然后根据cluster state获取该shard在哪个node上面 3.
- 1.4 Elasticsearch架构historical
1. Elasticsearch集群 1.1. 集群由node组成 - node有两种身份,一种是master,另一种是data。 - master node负责管理集群中的节点(如管理node、管理index) - data node负责存放document数据和提供搜索 - node的状态由三种
- 1.5 Elasticsearch优化historical
1. 设计调优 - 创建mapping阶段 - 设计合理的字段,使用Java封装复杂的操作,直接写入到ES中。避免复杂操作,如join、nested、parent-child等 - 设置最小的最合适的数据类型。byte,short,integer,long。如果最小的类型就合适,那么就用最小的类型。
- 1.6 Elasticsearch分词器historical
1. 什么是分词器 把一段句子分成一个个单词,对每个单词进行normalization 1.1. 召回率 搜索的时候增加能够搜索到的结果的数量 2. 分词器的构成 2.1. character filter 在一段文本进行分词之前,先进行预处理,比如说最常见的就是,过滤html标签(<span he
- 1.7 Elasticsearchhistorical
1. Elasticseach是什么 - 基于Lucene开发的全文搜索引擎: - 全文搜索引擎 - Lucene功能很强大,但是API特别繁杂,Elasticseach对其进行了封装。如下Elasticseach特性 2. Elasticseach特性 - 支持分布式:水平扩容支持海量数据 - 支
- 1.8 Elasticsearch一致性historical
1. 什么是一致性 - 分布式一致性.md - 就是Elasticsearch的Index上的document会先写入primary shard,然后同步到replica shard上,如何保证primary和replica shard上的数据一致性 2. consistency参数 2.1. 是什
- 1.9 Elasticsearch和MySQL的同步historical
1. 定时同步 定时任务,分页拉取MySQL中的数据写入ElasticSearch 增改的数据好说,直接重新索引 但是删除的数据咋整?增加一个额外的字段update time,更新完后对于<update time的全部删除 2. cannel 通过cannel解析MySQL binlog,然后发送到
- 1.10 Elasticsearch使用historical
1. 数据类型 1.1. String - text:会进行分词 - keyword:不会进行分词。相当于旧版的not analyzed 1.2. Numeric long, integer, short, byte, double, float 1.3. Date date:2015-01-01、
- 1.11 Elasticsearch安装historical
1. 单机版 1.1. 下载安装Elasticsearch Elasticsearch 7\.4\.2 \ Elastic 1.2. 下载安装Kibana - Kibana 7\.4\.2 \ Elastic 1.3. Chrome管理插件 - ElasticSearch Head \- Chrom
- 1.12 Elasticsearch refreshhistorical
1. 什么是refresh - Elasticsearch的一个操作,会把memory buffer中的数据刷入fliesystem cache,之后就可searchable 2. 为什么需要refresh - make index searchable - 注意refresh后的数据是在filte
- 1.13 Elasticsearch flushhistorical
1. 什么是flush - Elasticsearch的一个操作,把filesystem cache中的segment file持久化到磁盘,同时清理translog 2. 为什么需要flush - 调用并清理 translog 的事务,确保segment file持久化到磁盘 3. flush触发
- 1.14 Elasticsearch mergehistorical
1. 什么是merge - Elasticsearch中shard就是Lucene Index,而Lucene Index由segments组成 - 这个segment是不可变的,merge操作就是把多个小的segment合并成一个大的 2. 为什么需要merge - 每次refresh都会生成一个
- 1.15 Elasticsearch并发控制historical
1. Elasticsearch并发控制机制是什么 - 多个请求同时修改相同的数据,可能会有并发问题( 丢失更新 ),这就需要并发控制机制来解决 - 并发控制机制无非两种,悲观锁和乐观锁 - Elasticsearch采用乐观锁机制: 不可变的segment file+版本号 - 不可变的segme
- 1.16 Elasticsearch压测historical
参考 - Elasticsearch 压测方案之 esrally 简介 \- SegmentFault 思否 - GitHub \- elastic/rally: Macrobenchmarking framework for Elasticsearch - 【最佳实践】esrally:Elasti
- 1.17 云Elasticsearchhistorical
1. 腾讯云Elasticsearch 基于VIP+原生的Elasticsearch套件 - VIP:就是北极星注册中心的寻址+负载均衡+健康检查的功能 此 VIP 绑定了集群内部的所有数据节点,并提供负载均衡功能,用户所有请求会平均分布到集群的各个数据节点上。 此 VIP 还带有健康检查功能,如一