Elasticsearch实战-安装使用
文章目录
1.ElasticSearch 安装及使用
1.1 Es安装
我使用的是本地Es,安装在本地,单节点设置,使用版本是
#es 要和 kibana使用的是一个版本
Elasticsearch 版本 elasticsearch-7.10.0
Kibana 版本 kibana-7.10.0
elasticsearch.yml es配置文件
# 我只显示了有用的信息
# ======================== Elasticsearch Configuration =========================
# es节点名字
node.name: node-1
# ----------------------------------- Memory -----------------------------------
# 节点Host
network.host: 127.0.0.1
# 节点端口
http.port: 9200
# 访问的host
discovery.seed_hosts: ["127.0.0.1"]
# 集群主节点
cluster.initial_master_nodes: ["node-1"]
#好像是恢复启动节点
gateway.recover_after_nodes: 1
# Allow cors origin 跨域访问
http.cors.enabled: true
http.cors.allow-origin: "*"
1.2 kibana安装使用
Kibana 配置 kibana.yml
#kibaba端口
# Kibana is served by a back end server. This setting specifies the port to use.
server.port: 5601
# 访问Host
# To allow connections from remote users, set this parameter to a non-loopback address.
server.host: "127.0.0.1"
#链接ES的地址
# The URLs of the Elasticsearch instances to use for all your queries.
elasticsearch.hosts: ["http://localhost:9200"]
1.3 启动
ES启动 elasticsearch.bat
访问 http://localhost:9200/
Kibana启动 kibana.bat
访问 http://localhost:5601/
点击开发工具 Dev Tools ,进入ES操作页面
2.准备数据
我们先准备一下数据,
[
{
"empId":"111",
"name":"测试1",
"age":20,
"sex":"男",
"mobile":"19000001111",
"deptName":"技术部",
"address":"湖北省武汉市洪山区光谷大厦"
},
{
"empId":"222",
"name":"测试2",
"age":25,
"sex":"男",
"mobile":"19000002222",
"deptName":"技术部",
"address":"湖北省武汉市江汉路"
},
{
"empId":"333",
"name":"测试3",
"age":30,
"sex":"男",
"mobile":"19000003333",
"deptName":"技术部",
"address":"湖北省武汉市经济开发区"
},
{
"empId":"444",
"name":"测试4",
"age":20,
"sex":"女",
"mobile":"19000004444",
"deptName":"测试部",
"address":"湖北省武汉市沌口开发区"
},
{
"empId":"555",
"name":"测试5",
"age":20,
"sex":"女",
"mobile":"19000005555",
"deptName":"测试部",
"address":"湖北省武汉市东湖隧道"
},
{
"empId":"666",
"name":"测试6",
"age":30,
"sex":"女",
"mobile":"19000006666",
"deptName":"测试部",
"address":"湖北省武汉市江汉路"
},
{
"empId":"777",
"name":"测试7",
"age":60,
"sex":"女",
"mobile":"19000007777",
"deptName":"测试部",
"address":"湖北省黄冈市边城区"
},
{
"empId":"888",
"name":"测试8",
"age":40,
"sex":"女",
"mobile":"19000008888",
"deptName":"技术部",
"address":"湖北省武汉市江汉大学"
}
]
操作一下, 方便后面进行简单语法操作, 然后把Json串中的8条记录,分别插入到Es中
我们依次 执行
put /test/_doc/1 插入 第1条数据记录
put /test/_doc/2 插入 第2条数据记录
put /test/_doc/… 插入 第…条数据记录
put /test/_doc/8 插入 第8条数据记录
PUT /test/_doc/1
{
"empId":"111",
"name":"测试1",
"age":20,
"sex":"男",
"mobile":"19000001111",
"deptName":"技术部",
"address":"湖北省武汉市洪山区光谷大厦"
}
2.1 插入记录
PUT /test/_doc/8 , 向 test索引库中插入一个文档 JSON格式数据,这条数据记录的主键ID是8
- test就是索引,就是mysql的DB
- _doc就是文档类型,就是mysql的表, ES7.x以后只有一种结构就是_doc
- 8就是主键id
PUT /test/_doc/8
{
"empId":"888",
"name":"测试8",
"age":40,
"sex":"女",
"mobile":"19000008888",
"deptName":"技术部",
"address":"湖北省武汉市江汉大学"
}
2.2 全量查询
GET /test/_search
查询 test 索引下的所有数据 看到8条记录
2.3 DSL查询全部
DSL语法查询, DSL 是将查询语句放到 requetsBody中去请求http请求
GET /test/_search
{
"query": {
"match_all": {
}
}
}
依旧可以看到有8条记录
2.4 主键查询
GET /test/_doc/8 查询 test库下面的 文档类型 主键id为8的记录, 查询结果如下:
{
"_index" : "test",
"_type" : "_doc",
"_id" : "8",
"_version" : 1,
"_seq_no" : 9,
"_primary_term" : 1,
"found" : true,
"_source" : {
"empId" : "888",
"name" : "测试8",
"age" : 40,
"sex" : "女",
"mobile" : "19000008888",
"deptName" : "技术部",
"address" : "湖北省武汉市江汉大学"
}
}
2.5 查看数据存储结构
GET /test/_mapping 可以看到 这8条记录的结构
type:text 文本类型
type:long 数字类型
type: keyword 关键字
{
"test" : {
"mappings" : {
"properties" : {
"address" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"age" : {
"type" : "long"
},
"deptName" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"empId" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"mobile" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"name" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"sex" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
}
}
}
}
}
2.6 修改数据
插入一条数据
#插入一条数据
put /jzj/_doc/1
{
"name":"jzj1",
"age":10
}
查询 get /jzj/_doc/1 可以看到 version:1 版本:1
{
"_index" : "jzj",
"_type" : "_doc",
"_id" : "1",
"_version" : 1,
"_seq_no" : 0,
"_primary_term" : 1,
"found" : true,
"_source" : {
"name" : "jzj1",
"age" : 10
}
}
再次 插入一条修改后的 数据
#插入一条修改的 数据 jzj2,age=20
put /jzj/_doc/1
{
"name":"jzj2",
"age":20
}
再次查询 get /jzj/_doc/1 version:2 版本增加,且数据变化,是新的数据
{
"_index" : "jzj",
"_type" : "_doc",
"_id" : "1",
"_version" : 2,
"_seq_no" : 1,
"_primary_term" : 1,
"found" : true,
"_source" : {
"name" : "jzj2",
"age" : 20
}
}
2.8 update更新数据
POST /jzj/_update/1 更新主键为1的 记录 , 记住是POST POST POST
POST /jzj/_update/1
{
"doc":{
"name":"xxx333"
}
}
更新后 version:3
查询一下, GET /jzj/_doc/1 , name:xxx333 内容已经被更新上去
2.9 删除索引数据
DELETE /jzj
{
"acknowledged" : true
}
再执行下查询 get /jzj/_doc/1 索引不存在
GET /jzj/_search 也是索引不存在 “type” : “index_not_found_exception”
至此 我们已经基本的可以安装,使用 Es完毕, 下一篇 我们介绍下ES的详细使用