ElasticSearch

使用场景

日志分析、时序分析、全文检索,大数据的一些聚合查询

基本原理

底层 Lucene 高效的信息检索,利用倒排索引,存储使用LSM数据模型

alt
alt
alt

ES 读

Elasticsearch查询的时候需要查询所有Shard

ES 写

alt

内存模型

FST 倒排索引 占据了绝大部分堆内内存(优化到堆外存储)
alt

题外话

Lucene 没有更新的概念。ES 并不适合高频率更新文档操作,会导致效率极低。
插入数据如果带ID,也会导致类UPDATE操作,效率降低至少1倍。

各类资料

各个版本基本描述文档:
https://www.elastic.co/guide/en/elasticsearch/reference/6.5/getting-started.html

文档汇总:
https://www.elastic.co/guide/index.html

官方中文:
https://www.elastic.co/guide/cn/index.html

JavaAPI
https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/index.html

JAVA 客户端API
https://www.elastic.co/guide/en/elasticsearch/client/java-rest/6.5/java-rest-high-put-template.html

底层进阶:
https://cloud.tencent.com/developer/article/1626250
https://cloud.tencent.com/developer/column/2428

日常阅读:
https://elasticsearch.cn/article/

plugin 模式开发
https://www.cnblogs.com/wangnanhui/articles/10413066.html
https://github.com/wangnanhui/elastic-plugin-test