一、基本概念 Index索引:相当于Mysql中的DatabaseType类型:相当于Mysql中的Tabledocument文档:保存在某个索引index下,某种类型type的一个数据(document),文档是JSON格式,document就像是Mysql中的某个Table里面的内容 二、倒排索引 三、Docker安装 1.下载镜像文件ElasticSearch可以快速的储存、搜索和分析海量数据,是全文搜索引擎的首选
docker pull elasticsearch:7.4.2 存储和检索数据
docker pull kibana:7.4.2 可视化界面
mkdir -p /qqquser/elasticsearch/configmkdir -p /qqquser/elasticsearch/dataecho"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._catGET /_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 删除索引
在kibana中请求
官方批量数据:https://www.cnblogs.com/lichlaughing/p/14226711.html