Es知识点操作

一、基本操作类型

通用: /index/type/在这里插入图片描述

二、Java操作Es,添加数据

  1. 导入依赖
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>

2.配置请求host

  private  HttpHost[] http={
            new HttpHost("139.224.234.236",9200,"http")
    };
  
  private RestHighLevelClient client;

3 执行操作es

		//new 一个客户端 ,传入请求配置
		client=new RestHighLevelClient(RestClient.builder(http));
		
		//新建一个请求,传入index,id,
  		IndexRequest jqf = new IndexRequest().index("jqf").id("101").source(Map);
		
		//client 客户端创建索引(请求体, RequestOptions.DEFAULT)
		IndexResponse rsp = client.index(jqf, RequestOptions.DEFAULT);

三、Java操作Es,获取数据

		client=new RestHighLevelClient(RestClient.builder(http));

				//新建 GetRequest() 设置 查询条件
        GetRequest getRequest = new GetRequest();
        getRequest.index("jqf").id("101");

        try {
        //client的get 方法获取数据
            GetResponse rsp = client.get(getRequest,RequestOptions.DEFAULT);
            System.out.println(rsp);
        } catch (IOException e) {
            e.printStackTrace();
        }

四、Java操作Es,更新数据

	   	HashMap<String, Object> Map = new HashMap<>();
        Map.put("name","jiangqf");
        client=new RestHighLevelClient(RestClient.builder(http));

        UpdateRequest updateRequest = new UpdateRequest();
        updateRequest.index("jqf").id("101").doc(Map);//必须要

        try {
            UpdateResponse rsp = client.update(updateRequest,RequestOptions.DEFAULT);
            System.out.println(rsp);
        } catch (IOException e) {
            e.printStackTrace();
        }

五、Java操作Es,删除数据

  		client=new RestHighLevelClient(RestClient.builder(http));

        DeleteRequest deleteRequest = new DeleteRequest();

        deleteRequest.index("jqf").id("101");

        try {
            DeleteResponse rsp = client.delete(deleteRequest,RequestOptions.DEFAULT);
            System.out.println(rsp);
        } catch (IOException e) {
            e.printStackTrace();
        }

六、批量增删改

 		client=new RestHighLevelClient(RestClient.builder(http));
		// 设置索引,添加数据  
        IndexRequest request = new IndexRequest();
        request.index("bulk").id("3").source(XContentType.JSON,"name","abc","age",18);
				
		//创建批量对象
		BulkRequest bulkRequest = new BulkRequest();
		//批量对象增加请求
        bulkRequest.add(request);
        bulkRequest.add(request12345);
		//客户端发起批量请求
        client.bulk(bulkRequest,RequestOptions.DEFAULT);

        client.close();

七、查询数据

  client=new RestHighLevelClient(RestClient.builder(http));

    //设置查询条件
    SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
    searchSourceBuilder.query(QueryBuilders.matchAllQuery());

    //设置查询逻辑
    SearchRequest searchRequest = new SearchRequest();
    searchRequest.source(searchSourceBuilder).indices("bulk");//indices指的哪些索引
		
		//客户端执行查询
    SearchResponse rsp = client.search(searchRequest, RequestOptions.DEFAULT);
    System.out.println(rsp);
		
		//查询结果获取hits里的数据
    SearchHit[] hits = rsp.getHits().getHits(); //拿到list
    for (SearchHit hit : hits) {
        Map<String, Object> source = hit.getSourceAsMap();
        System.out.println("name是");
        System.out.println(source.get("name"));
    }
    
    client.close();

八、查询数据(模糊匹配)

        client=new RestHighLevelClient(RestClient.builder(http));

        //设置查询条件
        SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
        searchSourceBuilder.query(QueryBuilders.multiMatchQuery(18,"age"));

        //设置查询逻辑索引
        SearchRequest searchRequest = new SearchRequest();
        searchRequest.source(searchSourceBuilder).indices("bulk");//indices指的哪些索引
				//执行查询
        SearchResponse rsp = client.search(searchRequest, RequestOptions.DEFAULT);
        System.out.println(rsp);


        client.close();

版权声明:本文为qq_36814734原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。