package com.elastic.org.cn;
import com.google.gson.Gson;
import com.elastic.org.cn.entity.CarType;
import com.elastic.org.cn.entity.Product;
import com.elastic.org.cn.service.CarSerialBrandService;
import com.elastic.org.cn.service.CarTypeService;
import com.elastic.org.cn.service.ProductService;
import com.elastic.org.cn.util.ESClient;
import lombok.SneakyThrows;
import org.apache.http.HttpHost;
import org.elasticsearch.action.ActionListener;
import org.elasticsearch.action.admin.indices.alias.Alias;
import org.elasticsearch.action.admin.indices.create.CreateIndexRequest;
import org.elasticsearch.action.admin.indices.create.CreateIndexResponse;
import org.elasticsearch.action.admin.indices.delete.DeleteIndexRequest;
import org.elasticsearch.action.bulk.BulkRequest;
import org.elasticsearch.action.bulk.BulkResponse;
import org.elasticsearch.action.delete.DeleteRequest;
import org.elasticsearch.action.delete.DeleteResponse;
import org.elasticsearch.action.get.*;
import org.elasticsearch.action.index.IndexRequest;
import org.elasticsearch.action.index.IndexResponse;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.action.support.master.AcknowledgedResponse;
import org.elasticsearch.action.update.UpdateResponse;
import org.elasticsearch.client.*;
import org.elasticsearch.client.indices.GetIndexRequest;
import org.elasticsearch.client.indices.GetIndexResponse;
import org.elasticsearch.client.sniff.ElasticsearchNodesSniffer;
import org.elasticsearch.client.sniff.NodesSniffer;
import org.elasticsearch.client.sniff.SniffOnFailureListener;
import org.elasticsearch.client.sniff.Sniffer;
import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.transport.TransportAddress;
import org.elasticsearch.common.unit.TimeValue;
import org.elasticsearch.common.xcontent.XContentFactory;
import org.elasticsearch.common.xcontent.XContentType;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.index.reindex.BulkByScrollResponse;
import org.elasticsearch.index.reindex.UpdateByQueryRequest;
import org.elasticsearch.script.Script;
import org.elasticsearch.script.ScriptType;
import org.elasticsearch.search.SearchHit;
import org.elasticsearch.search.SearchHits;
import org.elasticsearch.search.aggregations.Aggregation;
import org.elasticsearch.search.aggregations.AggregationBuilders;
import org.elasticsearch.search.aggregations.bucket.histogram.DateHistogramInterval;
import org.elasticsearch.search.aggregations.bucket.histogram.Histogram;
import org.elasticsearch.search.aggregations.bucket.terms.StringTerms;
import org.elasticsearch.search.aggregations.metrics.Avg;
import org.elasticsearch.search.fetch.subphase.FetchSourceContext;
import org.elasticsearch.transport.client.PreBuiltTransportClient;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import java.io.IOException;
import java.util.*;
import javax.annotation.Resource;
import java.net.InetAddress;
import java.time.format.DateTimeFormatter;
@SpringBootTest
class ESApplicationTests {
@Resource
private ProductService service;
@Resource
private CarSerialBrandService carService;
@Resource
private CarTypeService carTypeService;
//region crud
@Test
@SneakyThrows
void esCRUD() {
Settings settings = Settings.builder()
.put("cluster.name", "elasticsearch").build();
TransportClient client = new PreBuiltTransportClient(settings)
// TransportClient client = new PreBuiltTransportClient(Settings.EMPTY)
.addTransportAddress(new TransportAddress(InetAddress.getByName("localhost"), 9300)); // 通讯端口号
//导入数据
create(client);
//查询
get(client);
getAll(client);
update(client);
delete(client);
client.close();
System.out.println(client);
//Add transport addresses and do something with the client...
}
//region 创建索引
@SneakyThrows
private void create(TransportClient client) {
List<Product> list = service.list();
for (Product item : list) {
System.out.println(item.getDate().toLocalDateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
IndexResponse response = client.prepareIndex("product", "_doc", item.getId().toString())
.setSource(XContentFactory.jsonBuilder()
.startObject()
.field("name", item.getName())
.field("desc", item.getDesc())
.field("price", item.getPrice())
.field("date", item.getDate().toLocalDateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")))
.field("tags", item.getTags().replace("\"", "").split(","))
.endObject())
.get();
System.out.println(response.getResult());
}
}
//endregion
//region 根据Id查找
/*
* 功能描述: <br>
* 〈〉
* @Param: [client]
* @Return: void
* @Author: wulei
* @Date: 2020/6/16 23:28
*/
@SneakyThrows
private void get(TransportClient client) {
GetResponse response = client.prepareGet("product", "_doc", "1").get();
String index = response.getIndex();//获取索引名称
String type = response.getType();//获取索引类型
String id = response.getId();//获取索引id
System.out.println("index:" + index);
System.out.println("type:" + type);
System.out.println("id:" + id);
System.out.println(response.getSourceAsString());
}
//endregion
//region 查询所有文档
private void getAll(TransportClient client) {
SearchResponse response = client.prepareSearch("product")
.get();
SearchHits searchHits = response.getHits();
SearchHit[] hits = searchHits.getHits();
for (SearchHit hit : hits) {
String res = hit.getSourceAsString();
System.out.println("res" + res);
}
}
//endregion
//region 更新文档
@SneakyThrows
private void update(TransportClient client) {
UpdateResponse response = client.prepareUpdate("product", "_doc", "2")
.setDoc(XContentFactory.jsonBuilder()
.startObject()
.field("name", "update name")
.endObject())
.get();
System.out.println(response.getResult());
}
//endregion
//region 删除指定Id文档
@SneakyThrows
private void delete(TransportClient client) {
DeleteResponse response = client.prepareDelete("product", "_doc", "2").get();
System.out.println(response.getResult());
}
//endregion
//endregion
//region 多条件查找
/*
* 功能描述: <br>
* 〈多条件查找〉
* @Param: []
* @Return: void
* @Author: wulei
* @Date: 2020/6/17 10:02
*/
@Test
@SneakyThrows
void multiSearch() {
TransportClient client = new PreBuiltTransportClient(Settings.EMPTY)
.addTransportAddress(new TransportAddress(InetAddress.getByName("localhost"), 9300));
SearchResponse response = client.prepareSearch("product")
.setQuery(QueryBuilders.termQuery("name", "xiaomi"))//Query
.setPostFilter(QueryBuilders.rangeQuery("price").from(0).to(4000))
.setFrom(1).setSize(2)
.get();
SearchHits searchHits = response.getHits();
SearchHit[] hits = searchHits.getHits();
for (SearchHit hit : hits) {
String res = hit.getSourceAsString();
System.out.println("res" + res);
}
client.close();
}
//endr
没有合适的资源?快使用搜索试试~ 我知道了~
基于Java High Level Client的Elasticsearch客户端的常用操作代码
共202个文件
xml:138个
java:19个
class:18个
5星 · 超过95%的资源 需积分: 49 6 下载量 16 浏览量
2022-04-17
19:23:02
上传
评论 1
收藏 204KB ZIP 举报
温馨提示
Elasticsearch客户端常用代码封装实例 基于MyBatis Plus的Java High Level Client ES客户端的常用操作 如:增删改查、聚合查询、客户端封装、节点嗅探等常用代码示例
资源详情
资源评论
资源推荐
收起资源包目录
基于Java High Level Client的Elasticsearch客户端的常用操作代码 (202个子文件)
ESApplicationTests.class 30KB
ClientController.class 7KB
CarBrand.class 6KB
CarType.class 5KB
Product.class 4KB
ClientBuilders.class 4KB
ResultDto.class 3KB
ESClient.class 3KB
ESApplicationTests$1.class 1KB
HighLevelClient.class 1KB
EsApplication.class 807B
ClientBuilders$1.class 768B
CarSerialBrandService.class 607B
ProductService.class 577B
CarTypeService.class 577B
CarBrandServiceMapper.class 316B
ProductMapper.class 299B
CarTypeMapper.class 299B
mvnw.cmd 6KB
.DS_Store 8KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.DS_Store 6KB
.gitignore 333B
.gitignore 184B
es.iml 15KB
0617.iml 14KB
maven-wrapper.jar 50KB
ESApplicationTests.java 26KB
ClientController.java 5KB
MavenWrapperDownloader.java 5KB
._ProductService.java 4KB
._CarSerialBrandService.java 4KB
ClientBuilders.java 3KB
ESClient.java 2KB
HighLevelClient.java 749B
CarBrand.java 628B
Product.java 563B
CarType.java 547B
EsApplication.java 412B
CarSerialBrandService.java 363B
ProductService.java 338B
CarTypeService.java 328B
ResultDto.java 237B
CarBrandServiceMapper.java 215B
ProductMapper.java 205B
CarTypeMapper.java 198B
es.kotlin_module 16B
es.kotlin_module 16B
HELP.md 445B
mvnw 10KB
.name 2B
maven-wrapper.properties 218B
application.properties 1B
application.properties 1B
workspace.xml 19KB
uiDesigner.xml 9KB
pom.xml 4KB
jarRepositories.xml 1KB
compiler.xml 861B
Maven__org_elasticsearch_client_elasticsearch_rest_high_level_client_7_9_3.xml 782B
Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_11_4.xml 763B
Maven__org_elasticsearch_client_elasticsearch_rest_client_sniffer_7_9_3.xml 761B
Maven__org_springframework_boot_spring_boot_test_autoconfigure_2_4_5.xml 740B
Maven__com_fasterxml_jackson_dataformat_jackson_dataformat_smile_2_11_4.xml 737B
Maven__com_fasterxml_jackson_dataformat_jackson_dataformat_cbor_2_11_4.xml 730B
Maven__com_fasterxml_jackson_dataformat_jackson_dataformat_yaml_2_11_4.xml 730B
Maven__com_vaadin_external_google_android_json_0_0_20131108_vaadin1.xml 727B
Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_11_4.xml 722B
Maven__org_springframework_boot_spring_boot_starter_logging_2_4_5.xml 719B
Maven__org_springframework_boot_spring_boot_starter_tomcat_2_4_5.xml 712B
Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_11_4.xml 708B
Maven__org_springframework_boot_spring_boot_autoconfigure_2_4_5.xml 705B
Maven__org_elasticsearch_client_elasticsearch_rest_client_7_9_3.xml 705B
Maven__org_springframework_boot_spring_boot_starter_test_2_4_5.xml 698B
Maven__org_springframework_boot_spring_boot_starter_json_2_4_5.xml 698B
Maven__org_springframework_boot_spring_boot_starter_jdbc_2_4_5.xml 698B
Maven__org_elasticsearch_plugin_aggs_matrix_stats_client_7_9_3.xml 698B
Maven__org_elasticsearch_plugin_transport_netty4_client_7_9_3.xml 691B
Maven__org_springframework_boot_spring_boot_starter_web_2_4_5.xml 691B
Maven__org_apache_tomcat_embed_tomcat_embed_websocket_9_0_45.xml 687B
Maven__com_fasterxml_jackson_core_jackson_annotations_2_11_4.xml 678B
Maven__org_elasticsearch_plugin_lang_mustache_client_7_12_1.xml 677B
Maven__org_elasticsearch_elasticsearch_ssl_config_7_12_1.xml 677B
Maven__org_elasticsearch_plugin_mapper_extras_client_7_9_3.xml 670B
Maven__org_elasticsearch_plugin_parent_join_client_7_12_1.xml 663B
Maven__org_apache_lucene_lucene_analyzers_common_8_6_2.xml 663B
Maven__org_elasticsearch_elasticsearch_secure_sm_7_9_3.xml 663B
Maven__org_elasticsearch_elasticsearch_x_content_7_9_3.xml 663B
Maven__org_springframework_boot_spring_boot_starter_2_4_5.xml 663B
Maven__jakarta_activation_jakarta_activation_api_1_2_2.xml 660B
Maven__org_junit_platform_junit_platform_commons_1_7_1.xml 660B
Maven__jakarta_annotation_jakarta_annotation_api_1_3_5.xml 660B
共 202 条
- 1
- 2
- 3
Elastic开源社区
- 粉丝: 2w+
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论1