Spring Data ElasticSearch 使用,
一. Spring Data ElasticSearch 简介
什么是spring data elasticSearch ?
Spring Data ElasticSearch 基于 spring data API 简化 elasticSearch 操作 , 将原始操作 elasticSearch 的客户端API 进行封装。
官方网站:http://projects.spring.io/spring-data-elasticsearch/
二. Spring Data ElasticSearch 入门案例
1、先创建一个maven 工程,然后基于maven 导入坐标,Spring data elasticsearch 对 elasticsearch api 简化封装
导入spring-test 和 junit 编写测试用例
Slf4j-log4j 日志包
2、在src/main/resources 下建立 applicationContext.xml 和 log4j.properties
引入 spring data elasticsearch 名称空间
3、创建domain、dao、service 包,编写DAO
编写DAO 自动操作elasticsearch 继承 ElasticsearchRepository 接口
配置applicationContext.xml
编写Service
配置applicationContext.xml
4、配置applicationContext.xml 连接 elasticsearch
5、索引和映射如何创建 --- 基于spring data elasticsearch 注解
在使用spring data elasticsearch 开发, 需要将索引和映射信息 配置实体类上面@Document 文档对象 (索引信息、文档类型 )
@Id 文档主键 唯一标识
@Field 每个文档的字段配置(类型、是否分词、是否存储、分词器 )
通过ElasticsearchTemplate 创建索引和添加映射
错误: 导包冲突
java.lang.NoClassDefFoundError: org/springframework/core/ResolvableTypeProvider
解决: spring 导包版本要一致
错误: MapperParsingException[No type specified for field [title]]
解决: 配置类型
6、Spring data Search CRUD 操作
CurdRepository 提供增删改查 save、delete、findAll 、findOne
PagingAndSortingRepository 提供分页和排序
7、条件查询 (分页)
查询标题方法
分页条件查询,只需要在查询方法中,添加Pageable 对象
排序条件查询,只需要在查询方法中,添加Sort 对象
然后在实际项目中,我们公司的策略是增删改的时候都要同步操作索引库,将索引库和数据库的数据5同步,在进行查询的时候如果是查询全部,则走数据库或者redis缓存,如果是条件查询,则是走索引库的,另外如果是模糊查询,记得要对输入的字段进行分词,不然可能导致查不到。