ElasticSearch可以快速的储存、搜索和分析海量数据,是全文搜索引擎的首选
一、基本概念
- Index索引:相当于Mysql中的Database
- Type类型:相当于Mysql中的Table
- Document文档:保存在某个索引index下,某种类型type的一个数据(Document),文档是JSON格式,Document就像是Mysql中的某个Table里面的内容
二、倒排索引
三、Docker安装
1.下载镜像文件
docker pull elasticsearch:7.4.2 存储和检索数据
docker pull kibana:7.4.2 可视化界面
2.创建实例
- mkdir -p /qqquser/elasticsearch/config
- mkdir -p /qqquser/elasticsearch/data
- echo"http.host: 0.0.0.0">>/qqqu
ser/elasticsearch/config/elasticsearch.yml 表示es可以被远程的任何机器访问
echo hello C >> tmp.txt
将字符串输出追加重定向,当前目录存在tmp.txt,则将tmp.txt的内容后面追加输出的字符串
tmp.txt内容:hello B hello C
启动ES实例
docker run --name es -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms64m -Xmx128m" \
-v /qqquser/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /qqquser/elasticsearch/data:/usr/share/elasticsearch/data \
-v /qqquser/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.4.2
-e ES_JAVA_OPTS="-Xms64m -Xmx128m" :必须
启动Kibana实例
docker run --name kibana \
-e ELASTICSEARCH_HOSTS=http://101.43.152.64:9200 -p 5601:5601 \
-d kibana:7.4.2
发现kibana运行报错,登录hub.docker.com,查看docker运行所需参数
四、初步检索
1._cat
- GET /_cat/nodes:查看所有节点
- GET /_cat/health:查看es健康状况
- GET /_cat/master:查看主节点
- GET /_cat/indices:查看所有索引 show databases
2.索引一个文档(保存)
保存一个数据,保存在哪个索引的哪个类型下,指定用哪个唯一标识
发送put、post请求
put请求可以指定唯一id post请求不用指定id,自动生成
PUT costomer/external/1
{
"name":"Json"
}
在customer索引下的external类型下保存1号数据
返回
{
"_index": "costomer",
"_type": "external",
"_id": "1",
"_version": 2,
"result": "updated", 第一次是created,后面才是updated
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
},
"_seq_no": 1,
"_primary_term": 1
}
3.查询
GET costomer/external/1
返回
"_seq_no": 1, 并发控制字段,每次更新就会+1,用来做乐观锁
"_primary_term": 1, 同上,主分片重新分配,如重启,就会变化
更新携带 ?if_seq_no=1&if_primary_term=1
并发修改时,会报错409
4.更新文档
会对比原数据,如果一致,_version和sql_no不会变
POST costomer/external/1/_update
{
"doc":{
"name":"up"
}
}
不对比原数据
POST/PUT costomer/external/1
{
"name":"up"
}
5.删除文档&索引
DELETE customer/external/1 删除文档
DELETE customer 删除索引
6.bulk批量api
在kibana中请求
官方批量数据:https://www.cnblogs.com/lichlaughing/p/14226711.html