Spring jpa 采用 jpql 对 json 数据进行筛选以及 MeiliSearch 调研

Posted 喵喵7781

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring jpa 采用 jpql 对 json 数据进行筛选以及 MeiliSearch 调研相关的知识,希望对你有一定的参考价值。

最近项目中遇到标签的筛选,性能上有点问题,想优化一下。

思路有二:

  1. 引入轻量级搜索引擎 meiliSearch
  2. 存入 json 格式的标签数据,直接利用 mysql 的 json 查找

Jpa 实践结果如下:
Jpa 支持 mysql 的 json 函数,sql 语句如下:

select * from A_表名 where JSON_CONTAINS(B_字段名, JSON_OBJECT('name', 'test0916')) and JSON_CONTAINS(data_bindings, JSON_OBJECT('name', '测试'));

30w 数据的情况下,数据库查询100条记录的时间大概为0.7s的样子,比 inner join 的方式快一倍。

MeiliSearch 参考资料如下:
安装
使用demo
官网
github java sdk 源码

Mysql 对 json 处理参考资料如下:
MySQL Json function

以上是关于Spring jpa 采用 jpql 对 json 数据进行筛选以及 MeiliSearch 调研的主要内容,如果未能解决你的问题,请参考以下文章

Spring data jpa总结

spring data jpa总结

Spring jpa jpql查询

Spring Boot JPA:为同一参数传递多个值 (JPQL)

Spring JPA 和 Hibernate 的 JPQL 查询错误

没有 JPQL 查询的 Spring-data-jpa 中的 CURRENT_DATE