没有合适的资源?快使用搜索试试~ 我知道了~
Java的Spring Boot 集成 Elasticsearch 使用详解.docx
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 1 下载量 43 浏览量
2022-07-02
22:15:40
上传
评论
收藏 207KB DOCX 举报
温馨提示
试读
17页
其中指定了 ES 的 host 和端口以及超时时间的设置,另外我们的 ES 没有添加任何的安全认证,因此 username 和 password 就没有设置。 然后在 config 包下创建 ElasticsearchConfiguration 类,会从配置文件中读取到对应的参数,接着申明一个 initRestClient 方法,返回的是一个 RestHighLevelClient,同时为它添加 @Bean(destroyMethod = "close") 注解,当 destroy 的时候做一个关闭,这个方法主要是如何初始化并创建一个 RestHighLevelClient。
资源推荐
资源详情
资源评论
Java 的 Spring Boot 集成 Elasticsearch 使用
详解
Spring Boot 集成 ES
Spring Boot 集成 ES 主要分为以下三步:
1. 加入 ES 依赖
2. 配置 ES
3. 演示 ES 基本操作
加入依赖
首先创建一个项目,在项目中加入 ES 相关依赖,具体依赖如下所示:
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>7.1.0</version>
</dependency>
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>7.1.0</version>
</dependency>
创建 ES 配置
在配置文件application.properties 中配置 ES 的相关参数,具体内容如下:
elasticsearch.host=localhost
elasticsearch.port=9200
elasticsearch.connTimeout=3000
elasticsearch.socketTimeout=5000
elasticsearch.connectionRequestTimeout=500
其中指定了 ES 的 host 和端口以及超时时间的设置,另外我们的 ES 没有添加
任何的安全认证,因此 username 和 password 就没有设置。
然后在 config 包下创建ElasticsearchConfiguration类,会从配置文件中读
取到对应的参数,接着申明一个initRestClient方法,返回的是一个RestHi
ghLevelClient,同时为它添加@Bean(destroyMethod = "close") 注解,当
destroy 的时候做一个关闭,这个方法主要是如何初始化并创建一
个RestHighLevelClient。
@Configuration
public class ElasticsearchConfiguration {
@Value("${elasticsearch.host}")
private String host;
@Value("${elasticsearch.port}")
private int port;
@Value("${elasticsearch.connTimeout}")
private int connTimeout;
@Value("${elasticsearch.socketTimeout}")
private int socketTimeout;
@Value("${elasticsearch.connectionRequestTimeout}")
private int connectionRequestTimeout;
@Bean(destroyMethod = "close", name = "client")
public RestHighLevelClient initRestClient() {
RestClientBuilder builder = RestClient.builder(new
HttpHost(host, port))
.setRequestConfigCallback(requestConfigBuilder ->
requestConfigBuilder
.setConnectTimeout(connTimeout)
.setSocketTimeout(socketTimeout)
.setConnectionRequestTimeout(connectionRequestTi
meout));
return new RestHighLevelClient(builder);
}
}
定义文档实体类
首先在constant包下定义常量接口,在接口中定义索引的名字为user:
public interface Constant {
String INDEX = "user";
}
然后在document包下创建一个文档实体类:
public class UserDocument {
private String id;
private String name;
private String sex;
private Integer age;
private String city;
// 省略 getter/setter
}
ES 基本操作
在这里主要介绍 ES 的索引、文档、搜索相关的简单操作,在service包下创
建UserService类。
索引操作
在这里演示创建索引和删除索引:
创建索引
在创建索引的时候可以在CreateIndexRequest中设置索引名称、分片数、副
本数以及 mappings,在这里索引名称为user,分片数number_of_shards 为
1,副本数number_of_replicas 为 0,具体代码如下所示:
public boolean createUserIndex(String index) throws IOException {
CreateIndexRequest createIndexRequest = new
CreateIndexRequest(index);
createIndexRequest.settings(Settings.builder()
.put("index.number_of_shards", 1)
.put("index.number_of_replicas", 0)
);
createIndexRequest.mapping("{\n" +
" \"properties\": {\n" +
" \"city\": {\n" +
" \"type\": \"keyword\"\n" +
" },\n" +
" \"sex\": {\n" +
" \"type\": \"keyword\"\n" +
" },\n" +
" \"name\": {\n" +
" \"type\": \"keyword\"\n" +
" },\n" +
剩余16页未读,继续阅读
资源评论
- 衷正乔2024-03-08总算找到了想要的资源,搞定遇到的大问题,赞赞赞!
小兔子平安
- 粉丝: 209
- 资源: 1940
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功