Elasticsearch学习笔记01-elasticsearch简介以及安装
Elasticsearch 简介
Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。Elasticsearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。官方客户端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和许多其他语言中都是可用的。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr,也是基于Lucene。
Docker安装ES
下载镜像文件
1 | docker pull elasticsearch:7.4.2 # 存储和检索数据 |
创建ES实例
1 | mkdir -p /mydata/elasticsearch/config # 创建es的配置目录 |
启动docker镜像
1 | docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \ |
访问 ip:9200端口,查看是否安装成功
创建kibana实例
1 | docker run --name kibana -e ELASTICSEARCH_HOSTS=http://192.168.111.100:9200 -p 5601:5601 \ |
访问5601端口
ES入门
初步检索
_cat
192.168.111.100:9200/_cat/health # 查看健康状况
192.168.111.100:9200/_cat/master # 查看主节点信息
192.168.111.100:9200/_cat/indices # 查看所有索引 相当于mysql的show databases;
索引一个文档(保存)
保存一个数据,保存在哪个索引的哪个类型下,指定哪个唯一标识
PUT customer/external/1
在customer索引下的external类型下保存1号数据为
1 | { |
保存数据用PUT
请求和POST
请求都可以。
POST
新增,如果不指定id,会自动生成id。指定id就会修改这个数据,并且新增版本号。PUT
可以新增也可以修改。PUT必须指定id,由于PUT需要指定id,我们一般都用来做修改操作,不指定id会报错。
查询文档
GET customer/external/1
结果
1 | { |
更新文档
POST更新带 _update
1 | POST 192.168.111.100:9200/customer/external/1/_update |
结果
1 | { |
POST更新,不带_update
1 | POST 192.168.111.100:9200/customer/external/1 |
结果
1 | { |
- 不同:POST操作会对比源文档数据,如果相同不会操作数据,文档version不增加
- PUT操作总会将数据重新保存并增加version版本
- 带_update对比元数据如果一样就不进行任何操作
删除文档
DELETE customer/external/1
bulk批量API
1 | POST customer/external/_bulk |