这里只涉及到基础使用

  1. 导包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
  1. 配置application.yml
server:
port: 8069
spring:
data:
elasticsearch:
cluster-nodes: 127.0.0.1:9300 #配置java访问elasticsearch端口
repositories:
enabled: true
cluster-name: elasticsearch #需与elasticsearch配置文件的名字一致,也可以不配置
  1. 创建普通的entity
@Data
@Document(indexName = "索引名称(只能小写)",type = "类型名")
public class Study{
private Integer id;
private String name;
private String sex;
private Integer age;
}
  1. 创建仓库 StudyRepository 并继承 ElasticsearchCrudRepository<Study, Integer>
public interface StudyRepository extends ElasticsearchCrudRepository<Study, Integer> {
}
  1. 创建service和实现类,以及Controller
public interface StudyService {

    Study save(Study study);

    void delete(Integer id);

    Study update(Study study);

    Study get(Integer id);

    Page<Study> getAll(String name,Pageable pageable);
} @Service
@RequiredArgsConstructor
public class StudyServiceImpl implements StudyService { private final StudyRepository studyRepository; private final ElasticsearchTemplate elasticsearchTemplate; @Override
public Study save(Study study) {
return studyRepository.save(study);
} @Override
public void delete(Integer id) {
studyRepository.deleteById(id);
} @Override
public Study update(Study study) {
Optional<Study> studyOptional = studyRepository.findById(study.getId());
studyOptional.ifPresent(s -> {
studyRepository.save(study);
});
return study;
} @Override
public Study get(Integer id) {
return studyRepository.findById(id).orElse(null);
}
/**
* 根据name查询(使用template进行复杂查询)
*/
@Override
public Page<Study> getAll(String name, Pageable pageable) {
NativeSearchQueryBuilder query = new NativeSearchQueryBuilder().withPageable(pageable);
if (!StringUtils.isEmpty(name)) {
query.withQuery(QueryBuilders.matchQuery("name", name));
}
NativeSearchQuery buildQuery = query.build();
List<Study> studies = elasticsearchTemplate.queryForList(buildQuery , Study.class);
return new PageImpl<>(studies);
}

注意:

  1. 目前ElasticSearch没有7.2的jar包~~使用7.2会报找不到nodes,建议降低版本~

  2. ElasticSearch提供的可视化工具 Kibana 的版本必须与你安装的ElasticSearch版本一一对应,不然无法启动~

参考:

  1. https://segmentfault.com/a/1190000018625101

最新文章

  1. BZOJ 4453: cys就是要拿英魂![后缀数组 ST表 单调栈类似物]
  2. 连接Linux下 XAMPP集成环境中部署的禅道的数据库MariaDB
  3. Hbuilder快捷键
  4. 【转】我的技术学习方法 — Anytao
  5. 51nod 1622 集合对[算法马拉松19 C]
  6. MVC中获取来自控制器名称与动作的方法
  7. Linux服务器管理: 系统的进程管理后台进程的切换和相关命令
  8. Spring源码学习之:ClassLoader学习(3)
  9. mybatis关联查询,一对一,一对多
  10. Libsvm的MATLAB调用和交叉验证
  11. InstallShield Clone dialog
  12. linux下一个apache+tomcat负载均衡和集群
  13. 【Android Developers Training】 53. 打印HTML文档
  14. Django 个性化管理员站点
  15. linux 关机命令shutdown
  16. python selenium2 中的显示等待WebDriverWait与条件判断expected_conditions举例
  17. keras 入门整理 如何shuffle,如何使用fit_generator 整理合集
  18. day09 小练习 斐波那契数列 文件
  19. 对Dataguard的三种模式的理解
  20. Eclipse智能提示设置

热门文章

  1. 报错:The server cannot be started because one or more of the ports are invalid. Open the server editor and correct the invalid ports.
  2. Python--numpy中的tile()函数
  3. 使用turtle库绘制一个叠加等边三角形
  4. Java实现 LeetCode 810 黑板异或游戏 (分析)
  5. Java实现 蓝桥杯 算法提高 宰羊
  6. Java实现 蓝桥杯 算法提高 最长滑雪道
  7. java实现第六届蓝桥杯生成回文数
  8. LB服务,软LB的服务能力(下)
  9. 剑指Offer之和为S的连续正数序列
  10. iOS -UIColor随机生成颜色的方法