300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > java 连接 Elasticsearch 使用 RestHighLevelClient 进行插入 删除 修改 查询数据

java 连接 Elasticsearch 使用 RestHighLevelClient 进行插入 删除 修改 查询数据

时间:2020-05-27 22:23:04

相关推荐

java 连接 Elasticsearch 使用 RestHighLevelClient 进行插入 删除 修改 查询数据

依赖

org.elasticsearch.client elasticsearch-rest-client 7.13.3 org.elasticsearch.client elasticsearch-rest-high-level-client 7.13.3 配置 @Configuration public class ESConfig {

@Beanpublic RestHighLevelClient getRestHighLevelClient(){HttpHost http1 = new HttpHost("127.0.0.1", 9200, "http");HttpHost http2 = new HttpHost("127.0.0.1", 9201, "http");RestClientBuilder restClientBuilder = RestClient.builder(http1, http2);RestHighLevelClient restHighLevelClient = new RestHighLevelClient(restClientBuilder);return restHighLevelClient;}

}

@Autowired

private RestHighLevelClient restHighLevelClient;

插入或更新数据

public void insertOrUpdateData() throws IOException {

HashMap<String, String> map = new HashMap<>();

map.put(“name”, “dd df ff”);

map.put(“age”, “16”);

IndexRequest indexRequest = new IndexRequest(“myindex”);

//设置ID

indexRequest.id(“9”);

//添加数据

indexRequest.source(map);

restHighLevelClient.indexAsync(indexRequest,RequestOptions.DEFAULT,new ActionListener<IndexResponse>() {@Overridepublic void onResponse(IndexResponse indexResponse) {RestStatus status = indexResponse.status();System.out.println(status.name());if (indexResponse.getResult() == DocWriteResponse.Result.CREATED) {System.out.println("创建成功");} else if (indexResponse.getResult() == DocWriteResponse.Result.UPDATED) {## 标题 System.out.println("更新成功");}}@Overridepublic void onFailure(Exception e) {System.out.println("出异常了");}});

}

删除数据

public void deleteData() throws IOException {

DeleteRequest deleteRequest = new DeleteRequest(“myindex”);

deleteRequest.id(“1”);

deleteRequest.timeout(TimeValue.timeValueMinutes(2));

DeleteResponse deleteResponse = restHighLevelClient.delete(deleteRequest, RequestOptions.DEFAULT);if (deleteResponse.getResult() == DocWriteResponse.Result.NOT_FOUND) {System.out.println("未找到需要删除的数据");}

}

更新数据

public void updateData() throws IOException {

Map<String, Object> parameters = new HashMap<>();

parameters.put(“count”, 4);

Script script = new Script(ScriptType.INLINE, "painless","ctx._source.field += params.count", parameters);UpdateRequest updateRequest = new UpdateRequest("myindex", "2");updateRequest.script(script);UpdateResponse updateResponse = restHighLevelClient.update(updateRequest, RequestOptions.DEFAULT);DocWriteResponse.Result result = updateResponse.getResult();if (result == DocWriteResponse.Result.CREATED) {System.out.println("created");} else if (result == DocWriteResponse.Result.UPDATED) {System.out.println("updated");} else if (result == DocWriteResponse.Result.DELETED) {System.out.println("deleted");} else if (result == DocWriteResponse.Result.NOOP) {System.out.println("noop");}

}

单条查询数据

public void updateData() throws IOException {

Map<String, Object> parameters = new HashMap<>();

parameters.put(“count”, 4);

Script script = new Script(ScriptType.INLINE, "painless","ctx._source.field += params.count", parameters);UpdateRequest updateRequest = new UpdateRequest("myindex", "2");updateRequest.script(script);UpdateResponse updateResponse = restHighLevelClient.update(updateRequest, RequestOptions.DEFAULT);DocWriteResponse.Result result = updateResponse.getResult();if (result == DocWriteResponse.Result.CREATED) {System.out.println("created");} else if (result == DocWriteResponse.Result.UPDATED) {System.out.println("updated");} else if (result == DocWriteResponse.Result.DELETED) {System.out.println("deleted");} else if (result == DocWriteResponse.Result.NOOP) {System.out.println("noop");}

}

单条查询数据

public void getOneData() throws IOException {

String[] includes = Strings.EMPTY_ARRAY;

String[] excludes = Strings.EMPTY_ARRAY;

FetchSourceContext fetchSourceContext =

new FetchSourceContext(true, includes, excludes);

GetRequest getRequest = new GetRequest("myindex");getRequest.id("9");

getRequest.fetchSourceContext(fetchSourceContext);

boolean exists = restHighLevelClient.exists(getRequest, RequestOptions.DEFAULT);if (exists) {System.out.println("有数据");}GetResponse response = restHighLevelClient.get(getRequest, RequestOptions.DEFAULT);if (response.isExists()) {Map<String, Object> sourceAsMap = response.getSourceAsMap();//获取索引名称String index = response.getIndex();//获取索引类型String type = response.getType();//获取索引idString id = response.getId();System.out.println("index:" + index);System.out.println("type:" + type);System.out.println("id:" + id);System.out.println(sourceAsMap);} else {System.out.println("没有数据");}

}

多条查询

public void multiQuery() throws IOException {

MultiGetRequest multiGetRequest = new MultiGetRequest();

multiGetRequest.add(“myindex”, “3”);

multiGetRequest.add(“myindex”, “5”);

MultiGetResponse multiGetResponse = restHighLevelClient

.mget(multiGetRequest, RequestOptions.DEFAULT);

MultiGetItemResponse[] responses = multiGetResponse.getResponses();

Stream.of(responses).forEach(response -> {

String id = response.getResponse().getId();

String source = response.getResponse().getSourceAsString();

System.out.println("id = " + id + " --> " + source);

});

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。