黑马-ES-第二讲(2020版)

这篇博客主要讲解了ElasticSearch的高级操作,包括bulk批量操作、数据导入、查询、集群管理和查询语法。详细阐述了matchAll、termQuery、matchQuery、模糊查询、布尔查询和聚合查询的使用,以及ElasticSearch集群的概念、搭建、分片配置和脑裂现象的避免方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

01-今日内容

  1. ElasticSearch 高级操作

  2. ElasticSearch 集群管理

02-ElasticSearch高级操作

2.1-bulk批量操作-脚本

脚本:

测试用的5号文档

POST /person1/_doc/5
{
  "name":"张三5号",
  "age":18,
  "address":"北京海淀区"
}

批量操作文本

#批量操作
#1.删除5号
#新增8号
#更新2号 name为2POST _bulk
{
   
   "delete":{
   
   "_index":"person1","_id":"5"}}
{
   
   "create":{
   
   "_index":"person1","_id":"8"}}
{
   
   "name":"八号","age":18,"address":"北京"}
{
   
   "update":{
   
   "_index":"person1","_id":"2"}}
{
   
   "doc":{
   
   "name":"2号"}}

结果

{
   
   
  "took" : 51,
  "errors" : true,
  "items" : [
    {
   
   
      "delete" : {
   
   
        "_index" : "person1",
        "_type" : "_doc",
        "_id" : "5",
        "_version" : 2,
        "result" : "deleted",
        "_shards" : {
   
   
          "total" : 2,
          "successful" : 1,
          "failed" : 0
        },
        "_seq_no" : 6,
        "_primary_term" : 2,
        "status" : 200
      }
    },
    {
   
   
      "create" : {
   
   
        "_index" : "person1",
        "_type" : "_doc",
        "_id" : "8",
        "_version" : 1,
        "result" : "created",
        "_shards" : {
   
   
          "total" : 2,
          "successful" : 1,
          "failed" : 0
        },
        "_seq_no" : 7,
        "_primary_term" : 2,
        "status" : 201
      }
    },
    {
   
   
      "update" : {
   
   
        "_index" : "person1",
        "_type" : "_doc",
        "_id" : "2",
        "_version" : 2,
        "result" : "updated",
        "_shards" : {
   
   
          "total" : 2,
          "successful" : 1,
          "failed" : 0
        },
        "_seq_no" : 10,
        "_primary_term" : 2,
        "status" : 200
      }
    }
  ]
}

2.2-bulk批量操作-JavaAPI

 /**
     *  Bulk 批量操作
     */
    @Test
    public void test2() throws IOException {
   
   

        //创建bulkrequest对象,整合所有操作
        BulkRequest bulkRequest =new BulkRequest();

           /*
        # 1. 删除5号记录
        # 2. 添加6号记录
        # 3. 修改3号记录 名称为 “三号”
         */
        //添加对应操作
        //1. 删除5号记录
        DeleteRequest deleteRequest=new DeleteRequest("person1","5");
        bulkRequest.add(deleteRequest);

        //2. 添加6号记录
        Map<String, Object> map=new HashMap<>();
        map.put("name","六号");
        IndexRequest indexRequest=new IndexRequest("person1").id("6").source(map);
        bulkRequest.add(indexRequest);
        //3. 修改3号记录 名称为 “三号”
        Map<String, Object> mapUpdate=new HashMap<>();
        mapUpdate.put("name","三号");
        UpdateRequest updateRequest=new UpdateRequest("person1","3").doc(mapUpdate);

        bulkRequest.add(updateRequest);
        //执行批量操作


        BulkResponse response = client.bulk(bulkRequest, RequestOptions.DEFAULT);
        System.out.println(response.status());

    }

2.3-导入数据-分析&创建索引

PUT goods
{
   
   
	"mappings": {
   
   
		"properties": {
   
   
			"title": {
   
   
				"type": "text",
				"analyzer": "ik_smart"
			},
			"price": {
   
    
				"type": "double"
			},
			"createTime": {
   
   
				"type": "date"
			},
			"categoryName": {
   
   	
				"type": "keyword"
			},
			"brandName": {
   
   	
				"type": "keyword"
			},
	
			"spec": {
   
   		
				"type": "object"
			},
			"saleNum": {
   
   	
				"type": "integer"
			},
			
			"stock": {
   
   	
				"type": "integer"
			}
		}
	}
}

2.4-导入数据-代码实现

 /**
     * 从Mysql 批量导入 elas
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值