1、什么是 Elasticsearch
Elasticsearch 是一个分布式的,基于 Lucene 的开源搜索和分析引擎。它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful WEB 接口。Elasticsearch 是用 Java 开发的,并作为 Apache 许可条款下的开放源码发布,是当前流行的企业级搜索引擎!
2、Docker 安装 Elasticsearch
可以使用以下命令快速启动Elasticsearch以进行开发或测试:
1.拉取镜像
docker pull elasticsearch:6.4.0
2.运行设置容器
docker run --name es -p 9200:9200 -p 9300:9300 -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d elasticsearch:6.4.0
# -d 表示在后台运行
# 也可以设置ES_JAVA_OPTS内存使用限制
3.查看是否在运行
docker ps
可以看到已经有了
那咱们就来测试一下能不能连接 输入 {
服务器的IP}:9200
出现上面的消息说明成功了
3、Docker 安装 IK分词器
1.进入容器
docker exec -it es /bin/bash
2.在线下载并安装
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.5.4/elasticsearch-analysis-ik-6.5.4.zip
3.进入plugins文件夹可以看到IK分词器
ik是一个中文切词插件,elasticSearch自带的中文切词很不专业,ik对中文切词支持的比较好。
4、安装可视化插件 Kibana
建议使用和 elasticsearch 相同版本镜像 6.4.0 (不一样可能会出现问题)
1.下载Kibana镜像
docker pull kibana:6.4.0
2、编辑kibana.yml配置文件
kibana.yml配置文件放在宿主机**/data/elk/**目录下,内容如下:
# Default Kibana configuration for docker target
server.name: kibana
server.host: "0"
elasticsearch.hosts: [ "http://(你的服务器IP):9200" ]
xpack.monitoring.ui.container.elasticsearch.enabled: true
3.运行 Kibana
docker run –name kibana -p 5601:5601 -v /data/elk/kibana.yml:/usr/share/kibana/config/kibana.yml --restart=always -d kibana:6.4.0
4.查看容器启动状态
docker ps
5.启动kibana
访问 http://{服务器的IP}:5601 (启动可能会较慢,如失败等几秒再尝试刷新一下)
5、ES使用(基本查询、聚合查询
1.创建索引库
ES的索引库是一个逻辑概念,它包括了分词列表及文档列表,同一个索引库中存储了相同类型的文档。它就相当于MySQL中的表,或相当于Mongodb中的集合。
关于索引这个语:
索引(名词):ES是基于Lucene构建的一个搜索服务,它要从索引库搜索符合条件索引数据。
索引(动词):索引库刚创建起来是空的,将数据添加到索引库的过程称为索引。
下边介绍两种创建索引库的方法,它们的工作原理是相同的,都是客户端向ES服务发送命令。
1)使用postman或curl这样的工具创建:
put http://localhost:9200/索引库名称
{
"settings"