美文网首页
ElasticSearch-文档-基本增删改查

ElasticSearch-文档-基本增删改查

作者: ssttIsme | 来源:发表于2021-06-07 16:27 被阅读0次

Maven项目的pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.spoon</groupId>
    <artifactId>RestElasticSearch</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <dependencies>
        <dependency>
            <groupId>org.elasticsearch</groupId>
            <artifactId>elasticsearch</artifactId>
            <version>7.4.2</version>
        </dependency>
        <dependency>
            <groupId>org.elasticsearch.client</groupId>
            <artifactId>elasticsearch-rest-high-level-client</artifactId>
            <version>7.4.2</version>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.9.9</version>
        </dependency>
    </dependencies>

</project>

创建文档

1.新建一个类用于封装数据

package demo;

public class User {
    private String name;
    private int age;
    private String sex;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public String getSex() {
        return sex;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }
    
}

2.创建

package demo;

import java.io.IOException;

import org.apache.http.HttpHost;
import org.elasticsearch.action.DocWriteResponse.Result;
import org.elasticsearch.action.index.IndexRequest;
import org.elasticsearch.action.index.IndexResponse;
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.common.xcontent.XContentType;

import com.fasterxml.jackson.databind.ObjectMapper;

public class ESCreateDoc {

    public static void main(String[] args) throws IOException {
        RestHighLevelClient esClient = new RestHighLevelClient(
                RestClient.builder(new HttpHost("192.168.201.130",9200,"http")));
        IndexRequest request = new IndexRequest();
        request.index("user").id("001");
        User user=new User();
        user.setName("张三");
        user.setAge(20);
        user.setSex("男");
        
        ObjectMapper mapper = new ObjectMapper();
        String userJson = mapper.writeValueAsString(user);
        request.source(userJson,XContentType.JSON);
        IndexResponse response = esClient.index(request, RequestOptions.DEFAULT);
        Result result = response.getResult();
        System.out.println(result);
        esClient.close();
    }

}

批量创建文档

package demo;

import java.io.IOException;

import org.apache.http.HttpHost;
import org.elasticsearch.action.bulk.BulkRequest;
import org.elasticsearch.action.bulk.BulkResponse;
import org.elasticsearch.action.index.IndexRequest;
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.common.xcontent.XContentType;


public class ESInsertBatchDoc {

    public static void main(String[] args) throws IOException {
        RestHighLevelClient esClient = new RestHighLevelClient(
                RestClient.builder(new HttpHost("192.168.201.130",9200,"http")));
        BulkRequest request = new BulkRequest();
        request.add(new IndexRequest().index("user").id("001").source(XContentType.JSON,"name","zhangsan","age",25,"sex","male"));
        request.add(new IndexRequest().index("user").id("002").source(XContentType.JSON,"name","lisi","age",18,"sex","female"));
        request.add(new IndexRequest().index("user").id("003").source(XContentType.JSON,"name","wangwu","age",19,"sex","male"));
        request.add(new IndexRequest().index("user").id("004").source(XContentType.JSON,"name","zhaoliu","age",24,"sex","female"));
        
        BulkResponse response = esClient.bulk(request, RequestOptions.DEFAULT);
        System.out.println(response.getTook());
        System.out.println(response.getItems());
        esClient.close();

    }

}

修改文档

package demo;

import java.io.IOException;

import org.apache.http.HttpHost;
import org.elasticsearch.action.update.UpdateRequest;
import org.elasticsearch.action.update.UpdateResponse;
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.common.xcontent.XContentType;


public class ESUpdateDoc {

    public static void main(String[] args) throws IOException {
        RestHighLevelClient esClient = new RestHighLevelClient(
                RestClient.builder(new HttpHost("192.168.201.130",9200,"http")));
        UpdateRequest request = new UpdateRequest();
        
        request.index("user").id("001");
        request.doc(XContentType.JSON,"sex","女");
        
        UpdateResponse response = esClient.update(request, RequestOptions.DEFAULT);
        System.out.println(response.getResult());
        
        
        esClient.close();
    }

}

删除文档

package demo;

import java.io.IOException;

import org.apache.http.HttpHost;
import org.elasticsearch.action.delete.DeleteRequest;
import org.elasticsearch.action.delete.DeleteResponse;
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestHighLevelClient;

public class ESDeleteDoc {

    public static void main(String[] args) throws IOException {
        RestHighLevelClient esClient = new RestHighLevelClient(
                RestClient.builder(new HttpHost("192.168.201.130",9200,"http")));
        DeleteRequest request = new DeleteRequest();
        request.index("user").id("001");
        DeleteResponse response = esClient.delete(request, RequestOptions.DEFAULT);
        System.out.println(response.toString());
        esClient.close();
    }

}

批量删除文档

package demo;

import java.io.IOException;

import org.apache.http.HttpHost;
import org.elasticsearch.action.bulk.BulkRequest;
import org.elasticsearch.action.bulk.BulkResponse;
import org.elasticsearch.action.delete.DeleteRequest;
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestHighLevelClient;


public class ESDeleteBatchDoc {

    public static void main(String[] args) throws IOException {
        RestHighLevelClient esClient = new RestHighLevelClient(
                RestClient.builder(new HttpHost("192.168.201.130",9200,"http")));
        BulkRequest request = new BulkRequest();
        request.add(new DeleteRequest().index("user").id("001"));
        request.add(new DeleteRequest().index("user").id("002"));
        request.add(new DeleteRequest().index("user").id("003"));
        request.add(new DeleteRequest().index("user").id("004"));
        
        BulkResponse response = esClient.bulk(request, RequestOptions.DEFAULT);
        System.out.println(response.getTook());
        System.out.println(response.getItems());
        esClient.close();

    }

}

相关文章

网友评论

      本文标题:ElasticSearch-文档-基本增删改查

      本文链接:https://www.haomeiwen.com/subject/qtgleltx.html