ElasticSearch关键技术

本部分主要是ElasticSearch相关技术整理,但是ElasticSearch的特点就是API更新非常快,导致书籍/博客很难有最快的跟进,本部分主要讲解部分不随大版本更新的技术。

ElasticSearch可以用来作为数据库吗

Elastic网上很少有作为基础数据库的案例,主要是它的聚合过滤等能力(相对于Oracle/MongoDb)实在太弱,但是它的优点是写入方便(动态模版等功能),扩展方便。在本章节中,本文主要是将ElasticSearch作为数据仓库(Data Warehouse),最原始的数据库肯定是存储在传统数据库中,而Elastic仅仅用于存储ETL/Flink等离线或实时聚合操作后的计算结果。

graph LR;
	subgraph Source
    HTML--Puppeteer-->Kafka;
    Excel/Word--Tika-->Kafka;
    Oracle-->Kafka;
    end
    Kafka--ETL-->Flink;
    Flink-->ElasticSearch;

在上图中,Elastic虽然是数据库,但是不会保留任何原始数据

本部分实验条件

本部分只分析单机版,并安装IK分词

# install ik plugin
./bin/elasticsearch-plugin install \
https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.5.4/elasticsearch-analysis-ik-6.5.4.zip
# start
./bin/elasticsearch -d

本文的模拟数据采用Kibana自带的Demo数据,启动Kibana就会提示自动导入