栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringBoot 集成 elasticsearch

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringBoot 集成 elasticsearch

版本

SpringBoot版本为2.4.3
Elasticsearch 版本 7.0.1
JDK1.8

最新的7.x版本已经不支持自定义类型了,默认以_doc作为类型,一个索引只能有一个类型。

ElasticSearch对比MYSQL

索引 > 数据库,类型 > 表,文档 > 行,属性 > 列

引入依赖

Spring 团队将Elasticsearch归到“Data”的范畴,所以依赖是以Spring-Data开头。

在pom.xml文件中添加以下依赖


    org.springframework.boot
    spring-boot-starter-data-elasticsearch
    2.4.3

添加客户端配置类

新建ElasticSearchConfig.java配置类,并配置一个RestHighLevelClient对象。

@Configuration
public class EsClientConfig extends AbstractElasticsearchConfiguration {
	@Bean
	@Override
	public RestHighLevelClient elasticsearchClient() {
		final ClientConfiguration clientConfiguration = ClientConfiguration.builder()
				.connectedTo("192.168.11.21:9200")
				.build();
		return RestClients.create(clientConfiguration).rest();
	}
}
创建文档实体

定义Book实体,官方叫Elasticsearch 对象映射
//
@Document 定义在Elasticsearch中索引信息
@Field 定义字段类型等信息
@Id 定义了Elasticsearch的_id, 表明该字段是文档id

@Data
@Document(indexName = "book", createIndex = true)
public class Book {
	@Id
	@Field(type = FieldType.Text)
	private String id;
	@Field(analyzer = "ik_max_word")
	private String title;
	@Field(analyzer = "ik_max_word")
	private String author;
	@Field(type = FieldType.Double)
	private Double price;
	@Field(type = FieldType.Date, format = DateFormat.basic_date)
	private Date createTime;
	@Field(type = FieldType.Date, format = DateFormat.basic_date)
	private Date updateTime;
}
Elasticsearch Repositories

该接口继承了ElasticsearchRepository接口,ElasticsearchRepository接口定义了Elasticsearch的CRUD,继承了该接口的接口甚至无需定义任何其他的方法就能满足基本需求。
通过定义的方法名就能自动创建各种查询。

。。。。。。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/995898.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号