elasticsearch的囊括了很多东西,有分析器、插件、语法、数据组成等等部分,但是我还是很想先看看在Java方面的实际应用,毕竟还是需要实践中使用的,至于其他部分会整理分类地总结出来
其实我写的都不是我官网文档、实验出来的,而是由很多篇文章整理归纳出来的,不知道算不算抄袭,绝对不会完全相同的复制粘贴,总结归纳也是一种学习方式
TransportClient
TransportClient可以支持2.x,5.x版本,TransportClient将会在Elasticsearch 7.0弃用并在8.0中完成删除,使用HTTP请求而不是Java序列化请求
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>transport</artifactId>
<version>7.9.1</version>
</dependency>
复制
public TransportClient transportClient() {
TransportClient transportClient = null;
try {
// 配置信息
Settings esSetting = Settings.builder()
.put("cluster.name", clusterName) //集群名字
.put("client.transport.sniff", true)//增加嗅探机制,找到ES集群
.put("thread_pool.search.size", Integer.parseInt(poolSize))//增加线程池个数,暂时设为5
.build();
//配置信息Settings自定义
transportClient = new PreBuiltTransportClient(esSetting);
TransportAddress transportAddress = new TransportAddress(InetAddress.getByName(hostName), Integer.valueOf(port));
transportClient.addTransportAddresses(transportAddress);
} catch (Exception e) {
log.error("elasticsearch TransportClient create error!!", e);
}
return transportClient;
}
复制
RestClient
包含Java High Level REST Client
ElasticsearchTemplate和ElasticsearchRestTemplate实现ElasticsearchOperations接口
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>7.9.1</version>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-elasticsearch</artifactId>
</dependency>
复制
复制
@Bean
public RestHighLevelClient elasticsearchClient(){
//获取es连接(不需要密码可以直接连接)
//private RestHighLevelClient restHighLevelClient = new RestHighLevelClient(RestClient
// .builder(new HttpHost(hostname, port, protocol)));
// 账号密码
CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
credentialsProvider.setCredentials(AuthScope.ANY,new UsernamePasswordCredentials(username, password));
// 初始化
RestClientBuilder builder = RestClient.builder(hostList.toArray(new HttpHost[0]));
// 异步httpclient连接延时配置
builder.setRequestConfigCallback(new RequestConfigCallback() {
@Override
public Builder customizeRequestConfig(Builder requestConfigBuilder) {
requestConfigBuilder.setConnectTimeout(connectTimeOut);
requestConfigBuilder.setSocketTimeout(socketTimeOut);
requestConfigBuilder.setConnectionRequestTimeout(connectionRequestTimeOut);
return requestConfigBuilder;
}
});
// 异步httpclient连接数配置
builder.setHttpClientConfigCallback(new HttpClientConfigCallback() {
@Override
public HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpClientBuilder) {
httpClientBuilder.setMaxConnTotal(maxConnectNum);
httpClientBuilder.setMaxConnPerRoute(maxConnectPerRoute);
httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider);
return httpClientBuilder;
}
});
RestHighLevelClient client = new RestHighLevelClient(builder);
return client;
}
复制
Jest
Jest是Java社区开发的,是Elasticsearch的Java Http Rest客户端,一定延迟
包写错了<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency> -->
复制
@Bean
public JestClient getJestClient(){
List<String> uris = Arrays.asList(url.split(","));
JestClientFactory jestClientFactory = new JestClientFactory();
jestClientFactory.setHttpClientConfig(new HttpClientConfig
.Builder(uris)
.connTimeout(10000)
.readTimeout(10000)
.maxConnectionIdleTime(1500L, TimeUnit.MILLISECONDS)
.multiThreaded(true)
.build());
return jestClientFactory.getObject();
}
复制
Spring Data Elasticsearch
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
复制
public interface ItemRepository extends ElasticsearchRepository<Item,Long> {}
复制
项目地址
https://gitee.com/hzy100java/springboot-elasticsearch.git
复制
除了这些方法外,应该还有query的查询条件组装、QueryDsl方法
下次写elasticsearch的可视化和QueryDsl
文章转载自Java技术学习笔记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
阿里云 Elasticsearch Serverless 检索增强型 8.17 版来袭!
阿里云大数据AI技术
366次阅读
2025-04-18 10:24:15
Java 开发玩转 MCP:从 Claude 自动化到 Spring AI Alibaba 生态整合
阿里巴巴中间件
77次阅读
2025-04-08 11:01:30
阿里云 Elasticsearch Serverless 检索增强型8.17版免费邀测!
阿里云大数据AI技术
61次阅读
2025-04-15 13:18:15
2025 XCOPS广州站:故障预测、根因分析全链路实战指南
铭毅天下Elasticsearch
48次阅读
2025-04-09 11:01:27
利用 EDB Postgres AI - WarehousePG 替换 Greenplum 实现数据仓库现代化
新智锦绣
45次阅读
2025-04-18 17:28:36
java项目选择云服务器怎么选?
云知识CLOUD
44次阅读
2025-04-09 20:02:37
Elasticsearch 8.X 如何利用嵌入向量提升搜索能力?
铭毅天下Elasticsearch
40次阅读
2025-04-09 11:01:28
【视频上新】Coco AI 部署及使用详解
铭毅天下Elasticsearch
38次阅读
2025-04-09 11:01:26
深入解析 Coco AI:一款开源、跨平台的智能搜索与协作工具
铭毅天下Elasticsearch
37次阅读
2025-04-07 09:46:42
Java数据库连接池学习
淡定
29次阅读
2025-04-14 22:46:26