ElasticSearch相关--入门

ElasticSearch可以快速的储存、搜索和分析海量数据,是全文搜索引擎的首选

一、基本概念

  1. Index索引:相当于Mysql中的Database
  2. Type类型:相当于Mysql中的Table
  3. Document文档:保存在某个索引index下,某种类型type的一个数据(Document),文档是JSON格式,Document就像是Mysql中的某个Table里面的内容

A1D61283-B785-44E1-9358-D0F4711FD74F.png

二、倒排索引

669F5189-6095-46E2-9BDD-6BCE41FC1539.png

三、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

返回

4A944EB5-B880-4ED1-8523-91598EB7AF85.png

"_seq_no": 1, 并发控制字段,每次更新就会+1,用来做乐观锁
"_primary_term": 1, 同上,主分片重新分配,如重启,就会变化
更新携带 ?if_seq_no=1&if_primary_term=1

并发修改时,会报错409

EF0D7987-3050-49FB-9129-E5D78C029CE1.png

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中请求

1DB0AD6A-7DF9-4310-A988-0C8A8AFC90ED.png

官方批量数据:https://www.cnblogs.com/lichlaughing/p/14226711.html

image.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值