Spring JPA elasticsearch 的坑

简介: 2018-10 更新:刚刚把spring data elasticsearch 升级到了3.1.1, 适配Elasticsearch 6.2.2。spring 也在准备转向Rest 客户端做准备了,不过目前这套架构用transport client还能工作。

2018-10 更新:
刚刚把spring data elasticsearch 升级到了3.1.1, 适配Elasticsearch 6.2.2。
spring 也在准备转向Rest 客户端做准备了,不过目前这套架构用transport client还能工作。


之前采用SSH框架,全文检索实现从solr到lucene,最后到elasticsearch。沿用hibernate search, 经过2年的过度,前端Spring 逐渐去掉了Struts, 现在又直接去掉了hibernate search, hibernate orm 变成了幕后的JPA底层实现。
主要原因是hibernate 和jboss捆绑太紧密,而spring boot确实方便。

这次切换后来总结下中间遇到的坑吧:
Spring JPA elasticsearch 3.0支持 elasticsearch 5.5 , 不过官网的客户端例子只提供了elasticsearch java api 的 node client 连接方式,还是采用内置elasticsearch 服务器的方式。这肯定不能用于生产系统。所以第一步:从node client 换到 transportclient方式,连接到elasticsearch。
可能是我elasticsearch不熟,这个坑有点大。
1, transportclient 不支持xpack,连接错误也不提示是xpack拒绝。
2,elasticsearch 5.5 的docker镜像 默认带 xpack, 使用参数xpack.security.enabled = false 居然不生效!
3, bin/elasticsearch-plugin remove x-pack 能卸载xpack, 卸载后要重启,重启后还有一堆参数等着调整。所以到elasticsearch 6 之后提供了额外的卸载命令。可是Spring JPA目前最高支持elasticsearch 5.6.8.
最后只好到处找到一个不带xpack的安装包,终于一切畅通了,开始享受elasticsearchRepository 带来的便捷,想怎么查就怎么查!

相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。  
目录
相关文章
存储 JSON Java
538 0
|
6月前
|
Java API 数据库
JPA简介:Spring Boot环境下的实践指南
上述内容仅是JPA在Spring Boot环境下使用的冰山一角,实际的实践中你会发现更深更广的应用。总而言之,只要掌握了JPA的规则,你就可以借助Spring Boot无比丰富的功能,娴熟地驾驶这台高性能的跑车,在属于你的程序世界里驰骋。
241 15
|
8月前
|
SQL Java 编译器
深入理解 Spring Data JPA 的导入与使用:以 UserRepository为例
本文深入解析了 Spring Data JPA 中 `UserRepository` 的导入与使用。通过示例代码,详细说明了为何需要导入 `User` 实体类、`JpaRepository` 接口及 `@Repository` 注解。这些导入语句分别用于定义操作实体、提供数据库交互方法和标识数据访问组件。文章还探讨了未导入时的编译问题,并展示了实际应用场景,如用户保存、查询与删除操作。合理使用导入语句,可让代码更简洁高效,充分发挥 Spring Data JPA 的优势。
490 0
|
SQL Java 数据库连接
springBoot+Jpa(hibernate)数据库基本操作
springBoot+Jpa(hibernate)数据库基本操作
352 0
|
SQL Java 关系型数据库
Springboot引入jpa来管理数据库
Springboot引入jpa来管理数据库
281 0
Springboot引入jpa来管理数据库
|
Java 数据库连接 API
【Java笔记+踩坑】Spring Data JPA
从常用注解、实体类和各层编写方法入手,详细介绍JPA框架在增删改查等方面的基本用法,以及填充用户名日期、分页查询等高级用法。
【Java笔记+踩坑】Spring Data JPA
|
Java Spring 数据库
怎样动动手指就能实现数据操作?Spring Data JPA背后的魔法揭秘
【8月更文挑战第31天】在Java开发中,数据库交互至关重要。传统的JDBC操作繁琐且难维护,而Spring Data JPA作为集成JPA的数据访问层解决方案,提供了CRUD等通用操作接口,显著减少代码量。通过继承`JpaRepository`,开发者能轻松实现数据的增删改查,甚至复杂查询和分页也不再困难。本文将通过示例详细介绍如何利用Spring Data JPA简化数据访问层的开发,提升代码质量和可维护性。
200 0
|
存储 Java 数据库
|
存储 Java API
|
Java 数据库连接 数据库
Spring Data JPA 与 Hibernate 之区别
【8月更文挑战第21天】
441 0