1、docker安装elasticsearch
启动
docker run --name elasticsearch -p 8434:9200 -p 8435:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -d elasticsearch:7.11.1
启动页面 http://8.142.76.223:8434/
[root@~]# dd if=/dev/zero of=swapfile bs=1024 count=500000
[root@~]# mkswap swapfile
[root@~]# swapon swapfile 报错改为0600权限 不用管
可以使用free命令查看swap空间大小是否发生变化;
命令#free -h
2、docker安装kibana
拉取镜像
docker pull kibana:7.11.1
启动镜像
docker run —name kibana —link=elasticsearch:elasticsearch -p 8432:5601 -d kibana:7.11.1
打开浏览器输入http://ip:8436就可以打开kibana的界面了。
3、命令
3.1、查看所有索引
http://localhost:9200/_cat/indices?v
或者 kibana查看
3.2、创建索引
代表我们需要创建一个名为 test 的索引,pretty 参数则是要求它返回一个漂亮的 json 结果
PUT /test?pretty
3.3、查看集群的状态
- Green: 即最佳状态
- Yellow: 即数据和集群可用,但是集群的备份有的是坏的
- Red: 即数据和集群都不可用
3.4、查看节点信息
3.5、删除索引
DELETE /test?pretty(test 即索引的名称,pretty 参数则是要求它返回一个漂亮的 json 结果)
3.6、新增文档并建立索引
//index指索引名、type指索引的类型、id是这条数据的id
PUT /index/type/id
{
"json数据"
}
咱们举个具体的例子
PUT /test/user/19960911
{
"id": 19960911,
"userId": "00001",
"userName": "liziye"
}
3.7、查询指定文档
GET /test/user/19960911 (查询我们刚刚添加的那个文档)
可以用postman 测试
3.8、修改某个文档(全部修改)
//全部修改就是直接替换这个文档,必须带上所有的字段,才能对文档进行修改
PUT /test/user/19960911
{
"id": 19960911,
"userId": "00002",
"userName": "liziye"
}
3.9、修改某个文档(部分修改)
POST /test/user/19960911/_update
{
"doc":{
"userId":"00003"
}
}
3.10、查询全部文档
GET /test/user/_search
在返回的结果中包含了几个属性,我们这里对其简单解释一下:
- took:耗费了几毫秒
- timed_out:是否超时,这里是没有
- _shards:数据拆成了5个分片
- hits.total:查询结果的数量
- hits.max_score:score的含义就是文档在本次搜索中的相关度分数,越相关,就越匹配,分数也就越高
- hits.hits:匹配搜索的文档的详细数据
3.11、分页查询全部文档
GET /test/user/_search
{
"query": { "match_all": {} },
"from": 1,
"size": 3
}
3.12、删除文档
DELETE /test/user/19960911
4、postman测试
4.1、查看所有索引
GET:http://8.142.76.223:8434/_cat/indices?v
4.2、新增索引
PUT :http://8.142.76.223:8434/xxk?pretty
4.3、删除索引
DELETE /xxk?pretty(xxk 即索引的名称,pretty 参数则是要求它返回一个漂亮的 json 结果)
4.4、新增缩索引、文档
4.4.1、PUT方式保存数据
PUT 8.142.76.223:8434/customer/extermal/1
customer:索引 extermal:文档类型 1:id
请求体
{
"name":"张三"
}
4.4.2、POST方式保存数据
POST 8.142.76.223:8434/customer/extermal
customer:索引 extermal:文档类型
请求体
{
"name":"张三"
}
id是自动生成唯一id
4.5、查看所有文档
GET :8.142.76.223:8434/customer/extermal/_search
4.6、查询指定文档
GET :8.142.76.223:8434/customer/extermal/1
4.7、更新指定文档
4.7.1、post方式修改:带_update
POST 8.142.76.223:8434/customer/extermal/1/_update
请求体
{
"doc":{
"name":"李四"
}
}
4.7.2、post方式修改:不带_update
POST 8.142.76.223:8434/customer/extermal/1
请求体
{
"name":"李四"
}
4.8、删除索引、文档
--ElasticSearch中未提供删除类型(表)的操作,只有删除索引或者文档
DELETE customer/external/1
DELETE customer
4.9、批量操作
/_bulk
5、java结合es操作
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>7.11.1</version>
</dependency>
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>7.11.1</version>
</dependency>