ElasticSearch
一、是什么(概念)¶
Elasticsearch 是一个 分布式、RESTful 风格 的搜索和数据分析引擎,能够解决不断涌现出的各种用例。
github: https://github.com/elastic/elasticsearch
使用 Java 语言编写的。
核心概念¶
索引 -> 数据库¶
如果部署架构为集群,一个 index 会在多个 Node 上备份,称之为 Shard(分片)
类型 -> 表结构¶
Keyword 类型不分词,直接索引 Text 类型先分词,再建索引
文档 -> 记录¶
二、为什么(历史由来)¶
为了解决什么问题
解决后的好处、优点 优点: 1. 分布式 2. RESTFul
三、怎么做(使用)¶
Get-Started¶
- 安装 JDK 8 或 Java 1.8.0+
- 下载软件包(二进制文件 + 配置)
- 修改 logstash.conf 配置
- bin/logstash -f logstash.conf 运行
- 访问 localhost:9200
建立索引¶
curl -X PUT 'http://ip:port/{index}'
docker run -d --name elasticsearch --restart=always \ -p 9200:9200 -p 9300:9300 \ -v /root/docker/elasticsearch/config:/usr/share/elasticsearch/config \ -v /root/docker/elasticsearch/data:/usr/share/elasticsearch/data \ elasticsearch:5.6.9
常用搜索¶
status:active # 准确搜索
Query DSL¶
四、做更好(应用场景)¶
master 选取规则¶
建立索引和类型要经 master,数据写入直接 route 到节点,压力分散
参考¶
- https://elasticsearch.cn/article/6178
- 硬件要求