Elasticsearch的自定义查询方法到底是啥?

server/2024/12/5 4:15:28/

Elasticsearch主要的目的就是查询,默认提供的查询方法是查询全部,不满足我们的需求,可以定义查询方法

自定义查询方法

单条件查询

我们查询的需求:从title中查询所有包含"鼠标"这个分词的商品数据

SELECT * 
FROM item 
WHERE title LIKE "%鼠标%"
java">//自定义查询方法,遵循框架给定的格式,编写的方法名称,就可以自动生成查询语句//SELECt * FROM item WHERE title LIKE "%鼠标%"/*query(查询):表示当前方法是查询方法,类似SQL中的selectItems/Item:表示要查询的实体类,以及返回类型,带s就是返回多个对象By(通过): 表示开始设置条件,类似SQL中的whereTitle: 要查询的字段Matches:表示执行查询分词的字符串,类似SQL中的like*/Iterable<Item> queryItemsByTitleMatches(String title);
java">    //单条件查询@Testpublic void queryOne(){Iterable<Item> items = itemRepository.queryItemsByTitleMatches("鼠标");items.forEach(item -> System.out.println(item));}
多条件查询
java">//多条件查询--orIterable<Item> queryItemsByTitleMatchesOrBrandMatches(String title,String brand);
java">    //多条件查询@Testpublic void queryOr(){Iterable<Item> items = itemRepository.queryItemsByTitleMatchesOrBrandMatches("鼠标", "罗技");items.forEach(item -> System.out.println(item));}
排序查询
java">    //指定price进行降序查询,desc降序,asc是升序Iterable<Item> queryItemsByTitleMatchesOrBrandMatchesOrderByPriceDesc(String title,String brand);
java">   //排序查询@Testpublic void orderByPrice(){Iterable<Item> items = itemRepository.queryItemsByTitleMatchesOrBrandMatchesOrderByPriceDesc("鼠标", "罗技");items.forEach(item -> System.out.println(item));}
分页查询
java">    //分页查询Page<Item> queryItemsByTitleMatchesOrBrandMatchesOrderByPriceDesc(String title, String brand, Pageable pageable);
java">    //分页查询@Testpublic void pageQuery(){int pageNum = 1; //页码,SpringDataES的页码是从0开始int pageSize = 3; //每页大小Page<Item> items = itemRepository.queryItemsByTitleMatchesOrBrandMatchesOrderByPriceDesc("鼠标", "罗技", PageRequest.of(pageNum - 1, pageSize));items.forEach(item -> System.out.println(item));//page中除了查询结果数据以外还有分页信息System.out.println("总页数:"+items.getTotalPages());System.out.println("总条数:"+items.getTotalElements());System.out.println("当前页:"+items.getNumber());System.out.println("每页条数:"+items.getSize());System.out.println("是否为首页:"+items.isFirst());System.out.println("是否为末页:"+items.isLast());}

上一篇文章:SpringBoot操作Elasticsearch-CSDN博客icon-default.png?t=O83Ahttps://blog.csdn.net/Z0412_J0103/article/details/143570062下一篇文章: 


http://www.ppmy.cn/server/140515.html

相关文章

【taro react】 ---- 常用自定义 React Hooks 的实现【六】之类渐入动画效果的轮播

1. 效果 2. 场景 css 效果实现:可以看到效果图中就是一个图片从小到大的切换动画效果,这个效果很简单,使用 css 的 transform 的 scale 来实现图片的从小到大的效果,切换就更加简单了,不管是 opacity 还是 visibility 都可以实现图片的隐藏和显示的切换。React.Children.m…

CAN通信协议 HAL库学习

1.CAN介绍 Controller Area Network,是ISO国际标准化的串行通信协议&#xff0c;为了满足汽车产业的“减少线束的数量”&#xff0c;通过多个LAN,进行大量数据的“高速通信”的需求。 低速CAN,通信协议10~125kbps,总线长度可达1000米 高速CAN,通信速率125kbps~1Mbps,总线长度…

复杂度的讲解

数据结构可以简单理解为在内存中管理数据 它具有速度快 带电存储的特点&#xff08;临时存储&#xff09; 如何衡量一个算法的好坏 因此衡量一个算法的好坏&#xff0c;一般是从时间和空间两个维度来衡量的&#xff0c;即时间复杂度和空间复杂度。 时间复杂度主要衡量一个算…

ONLYOFFICE 文档8.2版本:全面升级,带来更高效的协作编辑体验

文章目录 一、PDF 协作编辑&#xff0c;团队合作更高效二、界面优化&#xff0c;提升用户体验三、针对企业用户推出了以下新功能四、所有编辑器中的更多实用改进五、如何确保团队成员在使用新功能时数据安全六、其他实用改进 引言 随着ONLYOFFICE文档8.2版本的发布&#xff0c;…

【技术改造】前端图标组件库搭建流程

1-1 构建源码bulid.ts import path from node:path; import chalk from chalk; import consola from consola; import { build, type BuildOptions, type Format } from esbuild; import GlobalsPlugin from esbuild-plugin-globals; import { emptyDir, copy } from fs-extra…

MATLAB filtic函数使用详解

MATLAB filtic函数使用详解 文章目录 一、filtic函数输入输出说明二、数值计算例子三、MATLAB验证 提示&#xff1a;以下是本篇文章正文内容&#xff0c;转载请附上链接&#xff01; 一、filtic函数输入输出说明 \;\;\;\;\; filtic函数的调用格式为z filtic(b,a,y,x)。其中 向…

leetcode92:反转链表||

给你单链表的头指针 head 和两个整数 left 和 right &#xff0c;其中 left < right 。请你反转从位置 left 到位置 right 的链表节点&#xff0c;返回 反转后的链表 。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5], left 2, right 4 输出&#xff1a;[1,4,3,2…

Voice Translation of Audio Files into Different Languages Using Gpt-4o

openai-cookbook/examples/voice_solutions/voice_translation_into_different_languages_using_GPT-4o.ipynb at main openai/openai-cookbook GitHub您是否曾经想将播客翻译成您的母语&#xff1f;翻译和配音音频内容可以使其更便于全球观众理解。借助GPT-4o的全新音频输入…