关于使用docker容器按照elasticsearch

本文详细介绍了如何使用Docker安装Elasticsearch和Kibana,包括启动Elasticsearch实例、解决启动问题、发送请求、安装Kibana、初步和进阶检索操作、设置Mapping映射、分词处理以及Elasticsearch-Rest-Client的使用。此外,还提到了SpringBoot整合Elasticsearch的步骤和注意事项。
摘要由CSDN通过智能技术生成

一、Docket安装Elasticsearch

1、下载镜像文件

安装命令 用途
docker pull elasticsearch:7.9.2 存储和检索数据
docker pull kibana:7.9.2 可视化检索数据

注意:elasticsearch的版本必须和kibana的版本是相同的。

2、创建实例

2.1、ElasticSearch

安装命令 作用
mkdir -p /mydata/elasticsearch/config 创建一个配置文件夹
mkdir -p /mydata/elasticsearch/data 创建一个存放检索数据的文件夹(好比安装mysql的时候需要在mysql中创建一个data文件夹)
echo “http.host:0.0.0.0”>>/mydata/elasticsearch/config/elasticsearch.yml
docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \ 
-e "discovery.type=single-node" \ 
-e ES_JAVA_OPTS="-Xms64m -Xmx128m" \ 
-v /mydata/elasticsearch/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \
-v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.9.2

以后在外面安装插件重启即可。
#启动elasticsearch并且将端口号映射到主机上,9300是es在分布式集群环境下的通信端口。“discovery.type=single-node”表示es是以单节点模式运行。“ES_JAVA OPTS=“-Xms64m -Xmx128m””是由于ES已启动将会占用整个内存,这样Liunx就会卡死,将ES的占用内存设置为最小64m,最大126m。

特别注意:

-e ES_JAVA_OPTS=“-Xms64m -Xmx128m” \ 测试环境下,设置ES的初始内存和最大内存,否则导致过大启动不了ES;

2.2、检测ES启动错误的方法

由于我们使用的是docker容器,所以使用 docker logs elasticsearch这个命令打印出elasticsearch的日志消息。

使用 chmod -R 777 /mydata/elasticsearch/ 改变config、data、plugins文件夹的权限。

2.3、向ElasticSearch发送请求

  • localhost:9200/_cat/nodes:查看ES下的全部节点

    查询到的结果:
    127.0.0.1 28 84 11    dilmrt * WIN-NQTK0V7R9FC*”:在集群的环境下代表着主节点。
    

3、安装Kinbana

docker run --name kibana -e ELASTICSEARCH_HOST=http://***.***.**.**:9200 -p 5601:5601 \
-d kibana:7.9.2

4、初步检索

4.1、_cat

  1. GET /_cat/nodes:查看所有节点。
  2. GET /_cat/health:查看es的健康状态。
  3. GET /_cat/master:查看主节点。
  4. GTE :查看所有索引 show database;

4.2、索引一个文档(相当于MySQL的保存一条记录)

保存一个数据,保存在哪个索引的那个类型下,指定用哪个唯一标识。

PUT customer/external/1;在customer 索引下的external 类型下保存 1号数据为:

PUT customer/external/1
{
   
	"name":"张三"
}

PUTPOST请求都可以。
POST 新增。如果不指定id,会自动生成id。指定id就会修改这个id的数据,并增加版本号。
PUT 可以新增可以修改。PUT必须指定id;由于PUT需要指定id,我们一般都用来做修改操作,不指定id会报错。

4.3、查询文档

查询文档是发送GET请求的 :

customer/external/1

结果:
{
    "_index": "customer",  //在哪个索引 (相当于MySQL中的 在哪个数据库中)
    "_type": "external",	//在哪个类型 (相当于MySQL中的在哪个表中)
    "_id": "1",				//记录id
    "_version": 2,			//版本号
    "_seq_no": 1,			//并发控制字段,每一更新就会+1,用来做乐观锁
    "_primary_term": 1,		//同上,主分片重新分配,如重启,就会变化
    "found": true,
    "_source": {
        "name": "张三"
    }
}


更新携带:
?if_esq_no = 0&if_primary_term=1

4.4、更新文档

POST customer/external/1/_update
{
   
	"doc":{
   
		"name":"占山"
	}
}

或者
POST customer/extrnal/1
{
   
   "name":"张三"
}

或者

PUT customer/extrnal/1
{
   
    "name":"John Doe"
}


不同:
post操作会对比源文档数据,如果相同不会有操作,文档的version也不会增加。PUT操作总会将数据重新保存并增加version版本。
带 "_update"会对比源数据如果一样就不进行任何操作。
使用场景:
对于大并发更新,不带update;
对于大并发查询偶尔更新,带update;对比更新,重新计算分配规则。

更行同时增加属性

POST customer/external/1/_update
{
   
    "doc":{
   "name":"Jane Doe","age":"20"}
}

4.5、删除文档&索引

DELETE customer/external/1
DELETE customer

4.6、bulk批量API

POST customer/external/_bulk
{
   "index":{
   "_id":"1"}}
{
   "name":"Jon Doe"}
{
   "index":{
   "_id":"2"}}
{
   "name":"Jane Doe
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值