关于用scala 写Elasticsearch +springboot+jpa

最近在项目中用到这个 框架结构,用起来特别方便,分享下

引包 build.sbt

"org.springframework.boot" % "spring-boot-starter-data-elasticsearch" %verSpringBoot,

配置,我的是springcloud,配置文件配置在对应文件中就行了,

spring:data:elasticsearch:cluster-name: xxxxxcluster-nodes: xxx:9300

cluster-nodes: xxx:9300

  repositories:enabled: true
@Document( indexName = "xxx", `type` = "xxxx" )
@Mapping( mappingPath = "jsons/userjson.json" )
@JsonIdentityInfo( generator = classOf[JSOGGenerator] )
class UserEntity() {@BeanPropertyvar id:Long=_@BeanPropertyvar uid:String=_
}

映射文件userjson.json

{"article": {"properties": {"id": {"type": "long"},"uid": {"type": "keyword","index":"false"}}}
}

注,因为springboot不是很兼容elasticsearch 框架,在elasticsearch库中,需要put
我配置的是kibana


PUT /xxx
{
"mappings": {"xxx": {"properties": {"id": {"type": "long"},"uid": {"type": "keyword"}
}
}
}
}

下面写jpa

@Repositorytrait UserDao extends CrudRepository[UserEntity,java.lang.Long] with ElasticsearchRepository[UserEntity,java.lang.Long]{
//写jpa的规则,就不介绍了,文章最后有个连接,可以借鉴下,这不本文的重点}

注,因为在有的地方elasticsearch 并不兼容于scala的类型所以在映射的时候尽量用java类型,在其他地方做个隐式转换就好了
隐式转换

import scala.collection.JavaConverters._

jpa关键字介绍下
关键字
使用示例
等同于的ES查询

关键字 示例 es查询
And findByNameAndPrice {“bool” : {“must” : [ {“field” : {“name” : “?”}}, {“field” : {“price” : “?”}} ]}}
Or findByNameOrPrice {“bool” : {“should” : [ {“field” : {“name” : “?”}}, {“field” : {“price” : “?”}} ]}}
Is findByName {“bool” : {“must” : {“field” : {“name” : “?”}}}}
Not findByNameNot {“bool” : {“must_not” : {“field” : {“name” : “?”}}}}
Between findByPriceBetween {“bool” : {“must” : {“range” : {“price” : {“from” : ?,”to” : ?,”include_lower” : true,”include_upper” : true}}}}}
LessThanEqual findByPriceLessThan {“bool” : {“must” : {“range” : {“price” : {“from” : null,”to” : ?,”include_lower” : true,”include_upper” : true}}}}}
GreaterThanEqual findByPriceGreaterThan {“bool” : {“must” : {“range” : {“price” : {“from” : ?,”to” : null,”include_lower” : true,”include_upper” : true}}}}}
Before findByPriceBefore {“bool” : {“must” : {“range” : {“price” : {“from” : null,”to” : ?,”include_lower” : true,”include_upper” : true}}}}}
After findByPriceAfter {“bool” : {“must” : {“range” : {“price” : {“from” : ?,”to” : null,”include_lower” : true,”include_upper” : true}}}}}
Like findByNameLike {“bool” : {“must” : {“field” : {“name” : {“query” : “? *”,”analyze_wildcard” : true}}}}}
StartingWith findByNameStartingWith {“bool” : {“must” : {“field” : {“name” : {“query” : “? *”,”analyze_wildcard” : true}}}}}
EndingWith findByNameEndingWith {“bool” : {“must” : {“field” : {“name” : {“query” : “*?”,”analyze_wildcard” : true}}}}}
Contains/Containing findByNameContaining {“bool” : {“must” : {“field” : {“name” : {“query” : “?”,”analyze_wildcard” : true}}}}}
In findByNameIn(Collectionnames) {“bool” : {“must” : {“bool” : {“should” : [ {“field” : {“name” : “?”}}, {“field” : {“name” : “?”}} ]}}}}
NotIn findByNameNotIn(Collectionnames) {“bool” : {“must_not” : {“bool” : {“should” : {“field” : {“name” : “?”}}}}}}
True findByAvailableTrue {“bool” : {“must” : {“field” : {“available” : true}}}}
False findByAvailableFalse {“bool” : {“must” : {“field” : {“available” : false}}}}
OrderBy findByAvailableTrueOrderByNameDesc {“sort” : [{ “name” : {“order” : “desc”} }],”bool” : {“must” : {“field” : {“available” : true}}}}

关于jpa的规则,有比较全的介绍博客,推荐下

https://blog.csdn.net/KingBoyWorld/article/details/78654820

初学者可以对比学习!


仅自勉,履霜坚冰至!

关于用scala 写Elasticsearch +springboot+jpa相关推荐

  1. springboot+jpa+mybatis 多数据源支持

    springboot+jpa+mybatis 多数据源支持 配置dataSource import org.springframework.beans.factory.annotation.Quali ...

  2. springboot jpa sql打印_SpringBoot集成Spring Data JPA以及读写分离

    相关代码:github OSCchina JPA是什么 JPA(Java Persistence API)是Sun官方提出的Java持久化规范,它为Java开发人员提供了一种对象/关联映射工具 来管理 ...

  3. springboot+jpa+mysql Springboot+jpa+jdbc+sqlserver 使用时遇到的一系列的问题

    更改背景 正在做一个微信小程序的前后端项目,一开始使用的是springboot+jpa+mysql,但负责接受数据存入数据库的负责人执意要用sqlserver.本来微信小程序前端,以及spring b ...

  4. 全网最全精析破解 Springboot+Jpa 对数据库增删改查

    前言: 昨天做的是springboot+mybatis 对数据库进行增删改查 但是我感觉配置文件太多了 很麻烦 繁琐 今天搞一下springboot+Jpa对数据库进行增删改查, 感觉很好用 ,所以记 ...

  5. 基于 SpringBoot + jpa + Erupt 后台框架开发的综合签到打卡系统【100010425】

    基于 SpringBoot + jpa + Erupt 后台框架开发的综合签到打卡系统 一 .项目背景及需求分析 用户在可靠验证下实现简化身份确认 在已有用户数据库基础上 传统校验方式: 直接选择 = ...

  6. 解决Springboot+JPA中多表关联查询会查询多次的问题(n+1查询问题)

    解决Springboot+JPA中多表关联查询会查询多次的问题(n+1查询问题) 参考文章: (1)解决Springboot+JPA中多表关联查询会查询多次的问题(n+1查询问题) (2)https: ...

  7. java sql sum函数的使用方法,Springboot jpa使用sum()函数返回结果如何接收

    1.需求 我的需求是统计域名以及域名出现的次数. 之前使用springboot jpa都是把数据库中的表跟实体类绑定,创建继承JpaRepository的接口.如下: @Repository publ ...

  8. springboot+jpa+mysql+redis+swagger整合步骤

    springboot+jpa+MySQL+swagger框架搭建好之上再整合redis: 在电脑上先安装redis: 一.在pom.xml中引入redis 二.在application.yml里配置r ...

  9. 补习系列(19)-springboot JPA + PostGreSQL

    目录 SpringBoot 整合 PostGreSQL 一.PostGreSQL简介 二.关于 SpringDataJPA 三.整合 PostGreSQL A. 依赖包 B. 配置文件 C. 模型定义 ...

最新文章

  1. 去中心化已成大势所趋,手机的中枢地位岌岌可危?
  2. python生成斐波那契_python学习-生成器(generator)及斐波那契;yield
  3. P6 根轨迹分析法-《Matlab/Simulink与控制系统仿真》程序指令总结
  4. Python初学者之ModuleNotFoundError:No module named 'cv2'简单解决办法
  5. python离散余弦变换_在python3下使用OpenCV做离散余弦变换DCT及其反变换IDCT
  6. PDH光端机常见故障及解决方法介绍
  7. 文件服务器上传文件的过程,文件服务器上传文件实现过程【分享】
  8. timeSetEvent、回调函数、CCriticalSection
  9. mysql索引条件下推_MySQL索引条件下推的简单测试
  10. 2011浙大878计算机专业基础扫描版真题
  11. CSS2 及CSS3 在ie浏览器下的支持情况
  12. 实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定。
  13. python大数据培训好不好
  14. PicGo的安装与使用
  15. git将本地文件push到阿里云Code:出现Permission denied (publickey)错误
  16. Ubuntu安装Source Insight导入Android源码并设置仿IDEA主题Darcula
  17. 蓝桥杯, 38线译码器74Hc138
  18. 你又知不知道,日有所思,夜有所梦。
  19. 数据库打开数据表_使用微数据打开您的数据
  20. 【亲测有效】Linux系统安装NVIDIA显卡驱动

热门文章

  1. Python光大证券中文云系统——爬取新浪财经新闻
  2. 批量对下载的pdf文献重命名
  3. 打开VT-x/VT-d功能
  4. C++实现Kingdomrush小游戏
  5. python用matplotlib画五角星_基于Matplotlib的Python绘图
  6. mysql squence分布式,xsequence分布式序列号生成组件1.0版本终于发布了
  7. SMBIOS读取本机的MEMORY信息
  8. 一文读懂什么是软件供应链安全
  9. 实战内容(1)- QQ浏览器屏幕分享报错:GET chrome-extension://invalid/ net::ERR_FAILED
  10. TMF SID性能相关实体介绍