Elasticsearch 是什么
Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。作为 Elastic Stack 的核心,它集中存储您的数据,帮助您发现意料之中以及意料之外的情况。
Elasticsearch 官方地址
Elasticsearch 的优点
- 分布式,无需人工搭建集群(solr 就需要人为配置,使用 Zookeeper 作为注册中心)
- Restful 风格,一切 API 都遵循 Rest 原则,容易上手
- 近实时搜索,数据更新在 Elasticsearch 中几乎是完全同步的。
Elasticsearch 应用场景
- 大型分布式日志分析系统:如 ELK (Elasticsearch(存储日志)+logstash(收集日志)+kibana(展示数据))
- 大型分布式搜索系统:如电商商品搜索,网盘搜索引擎
Elasticsearch 存储结构
Elasticsearch是文件存储,Elasticsearch是面向文档型数据库,一条数据在这里就是一个文档,用JSON作为文档序列化的格式。
1 | { |
关系数据库 ⇒ 数据库 ⇒ 表 ⇒ 行 ⇒ 列(Columns)
Elasticsearch ⇒ 索引(Index) ⇒ 类型(type) ⇒ 文档(Docments) ⇒ 字段(Fields)
Elasticsearch 安装
安装 jdk
由于 Elasticsearch 是由 Java 语言编写依赖 jdk。安装略。
elasticsearch-7.2.0 需要 jdk11
下载 Elasticsearch 安装包
官方地址
解压 Elasticsearch
1 | tar -zxvf elasticsearch-7.2.0-linux-x86_64.tar.gz |
修改 jvm.options
默认配置占用内存过大,修改512m
config/jvm.options1
2-Xms512m
-Xmx512m
修改 elasticsearch.yml
允许外网连接配置
config/elasticsearch.yml1
2
3
4
5
6
7
8
path.data: /home/data/elastic/data
path.logs: /home/data/elastic/data
network.host: 192.168.2.129
http.port: 9200
启动 Elasticsearch
因为安全问题 Elasticsearch 不让用 root 用户直接运行,所以要创建新用户。
- 创建用户:
useradd elastic
- 给用户赋权:
chown -R elastic:elastic /home/data/elastic/
切换用户启动1
2
3su elastic
cd /home/data/elastic/elasticsearch-7.2.0/bin
./elasticsearch
测试 Elasticsearch
curl http://localhost:9200
或者浏览器:http://192.168.2.129:9200
1 | { |
常见错误
- [1]: max number of threads [1024] for user [elastic] is too low, increase to at least [4096]
解决方法:用户线程数不够,修改配置 vim /etc/security/limits.d/20-nproc.conf
1 | * soft nproc 4096 |
- 其它百度都能找到
Spring Boot 整合 Elasticsearch
持续更新中…