Maven Dependency
<?xml version="1.0" encoding="UTF-8"?><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>org.fool</groupId><artifactId>helloes</artifactId><version>1.0-SNAPSHOT</version><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target></properties><dependencies><dependency><groupId>org.elasticsearch</groupId><artifactId>elasticsearch</artifactId><version>7.13.4</version></dependency><dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-high-level-client</artifactId><version>7.13.4</version></dependency><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-api</artifactId><version>2.14.1</version></dependency><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-core</artifactId><version>2.14.1</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.12.5</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.20</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13.2</version><scope>test</scope></dependency></dependencies></project>
Prequisite
User.java
package org.fool.es.test;import lombok.Data;@Datapublic class User {private String name;private String sex;private Integer age;}
JsonUtils.java
package org.fool.es.test;import com.fasterxml.jackson.core.JsonProcessingException;import com.fasterxml.jackson.databind.JavaType;import com.fasterxml.jackson.databind.ObjectMapper;import java.util.List;import java.util.Map;public class JsonUtils {private static final ObjectMapper MAPPER = new ObjectMapper();public static String objectToJson(Object data) {try {String result = MAPPER.writeValueAsString(data);return result;} catch (JsonProcessingException e) {e.printStackTrace();}return null;}public static <T> T jsonToBean(String jsonData, Class<T> beanType) {try {T result = MAPPER.readValue(jsonData, beanType);return result;} catch (Exception e) {e.printStackTrace();}return null;}public static <T> List<T> jsonToList(String jsonData, Class<T> beanType) {JavaType javaType = MAPPER.getTypeFactory().constructParametricType(List.class, beanType);try {List<T> resultList = MAPPER.readValue(jsonData, javaType);return resultList;} catch (Exception e) {e.printStackTrace();}return null;}public static <K, V> Map<K, V> jsonToMap(String jsonData, Class<K> keyType, Class<V> valueType) {JavaType javaType = MAPPER.getTypeFactory().constructMapType(Map.class, keyType, valueType);try {Map<K, V> resultMap = MAPPER.readValue(jsonData, javaType);return resultMap;} catch (Exception e) {e.printStackTrace();}return null;}}
Doc Insert
ESDocInsert.java
package org.fool.es.test;import org.apache.http.HttpHost;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 java.io.IOException;public class ESDocInsert {public static void main(String[] args) throws IOException {RestHighLevelClient client = new RestHighLevelClient(RestClient.builder(new HttpHost("127.0.0.1", 9200, "http")));User user = new User();user.setName("caocao2");user.setSex("female");user.setAge(30);IndexRequest indexRequest = new IndexRequest();indexRequest.index("user").id("1008");indexRequest.source(JsonUtils.objectToJson(user), XContentType.JSON);IndexResponse indexResponse = client.index(indexRequest, RequestOptions.DEFAULT);System.out.println(indexResponse.getResult());client.close();}}
Console Output

curl
curl --location --request GET 'http://127.0.0.1:9200/user/_doc/1008'

Doc Get
ESDocGet.java
package org.fool.es.test;import org.apache.http.HttpHost;import org.elasticsearch.action.get.GetRequest;import org.elasticsearch.action.get.GetResponse;import org.elasticsearch.client.RequestOptions;import org.elasticsearch.client.RestClient;import org.elasticsearch.client.RestHighLevelClient;import java.io.IOException;public class ESDocGet {public static void main(String[] args) throws IOException {RestHighLevelClient client = new RestHighLevelClient(RestClient.builder(new HttpHost("127.0.0.1", 9200, "http")));GetRequest getRequest = new GetRequest();getRequest.index("user").id("1008");GetResponse getResponse = client.get(getRequest, RequestOptions.DEFAULT);System.out.println(getResponse.getSourceAsString());client.close();}}
Console Output

Doc Update
ESDocUpdate.java
package org.fool.es.test;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;import java.io.IOException;public class ESDocUpdate {public static void main(String[] args) throws IOException {RestHighLevelClient client = new RestHighLevelClient(RestClient.builder(new HttpHost("127.0.0.1", 9200, "http")));UpdateRequest updateRequest = new UpdateRequest();updateRequest.index("user").id("1008");updateRequest.doc(XContentType.JSON, "sex", "male", "age", 40);UpdateResponse updateResponse = client.update(updateRequest, RequestOptions.DEFAULT);System.out.println(updateResponse.getResult());client.close();}}
Console Output

curl
curl --location --request GET 'http://127.0.0.1:9200/user/_doc/1008'

Doc Delete
ESDocDelete.java
package org.fool.es.test;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;import java.io.IOException;public class ESDocDelete {public static void main(String[] args) throws IOException {RestHighLevelClient client = new RestHighLevelClient(RestClient.builder(new HttpHost("127.0.0.1", 9200, "http")));DeleteRequest deleteRequest = new DeleteRequest();deleteRequest.index("user").id("1008");DeleteResponse deleteResponse = client.delete(deleteRequest, RequestOptions.DEFAULT);System.out.println(deleteResponse);client.close();}}
Console Output

curl
curl --location --request GET 'http://127.0.0.1:9200/user/_doc/1008'

Batch Insert
ESDocBatchInsert.java
package org.fool.es.test;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;import java.io.IOException;import java.util.Arrays;public class ESDocBatchInsert {public static void main(String[] args) throws IOException {RestHighLevelClient client = new RestHighLevelClient(RestClient.builder(new HttpHost("127.0.0.1", 9200, "http")));BulkRequest bulkRequest = new BulkRequest();bulkRequest.add(new IndexRequest().index("user").id("1001").source(XContentType.JSON, "name", "caocao", "age", 10, "sex", "male"));bulkRequest.add(new IndexRequest().index("user").id("1002").source(XContentType.JSON, "name", "liubei", "age", 20, "sex", "male"));bulkRequest.add(new IndexRequest().index("user").id("1003").source(XContentType.JSON, "name", "sunquan", "age", 30, "sex", "male"));bulkRequest.add(new IndexRequest().index("user").id("1004").source(XContentType.JSON, "name", "guanyu", "age", 40, "sex", "male"));bulkRequest.add(new IndexRequest().index("user").id("1005").source(XContentType.JSON, "name", "zhangfei", "age", 40, "sex", "male"));bulkRequest.add(new IndexRequest().index("user").id("1006").source(XContentType.JSON, "name", "zhaoyun", "age", 50, "sex", "male"));bulkRequest.add(new IndexRequest().index("user").id("1007").source(XContentType.JSON, "name", "caocao2", "age", 50, "sex", "female"));BulkResponse bulkResponse = client.bulk(bulkRequest, RequestOptions.DEFAULT);System.out.println(bulkResponse.getTook());System.out.println(Arrays.toString(bulkResponse.getItems()));client.close();}}
Console Output

curl
curl --location --request GET 'http://127.0.0.1:9200/user/_search'

Batch Delete
ESDocBatchDelete.java
package org.fool.es.test;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;import java.io.IOException;import java.util.Arrays;public class ESDocBatchDelete {public static void main(String[] args) throws IOException {RestHighLevelClient client = new RestHighLevelClient(RestClient.builder(new HttpHost("127.0.0.1", 9200, "http")));BulkRequest bulkRequest = new BulkRequest();bulkRequest.add(new DeleteRequest().index("user").id("1001"));bulkRequest.add(new DeleteRequest().index("user").id("1002"));bulkRequest.add(new DeleteRequest().index("user").id("1003"));bulkRequest.add(new DeleteRequest().index("user").id("1004"));bulkRequest.add(new DeleteRequest().index("user").id("1005"));bulkRequest.add(new DeleteRequest().index("user").id("1006"));bulkRequest.add(new DeleteRequest().index("user").id("1007"));BulkResponse bulkResponse = client.bulk(bulkRequest, RequestOptions.DEFAULT);System.out.println(bulkResponse.getTook());System.out.println(Arrays.toString(bulkResponse.getItems()));client.close();}}
Console Output

curl
curl --location --request GET 'http://127.0.0.1:9200/user/_search'

泰克风格 只讲干货 不弄玄虚
文章转载自TechStyle,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




