Elasticsearch的自定义查询方法到底是啥?
Elasticsearch主要的目的就是查询,默认提供的查询方法是查询全部,不满足我们的需求,可以定义查询方法
自定义查询方法
单条件查询
我们查询的需求:从title中查询所有包含"鼠标"这个分词的商品数据
SELECT *
FROM item
WHERE title LIKE "%鼠标%"
//自定义查询方法,遵循框架给定的格式,编写的方法名称,就可以自动生成查询语句//SELECt * FROM item WHERE title LIKE "%鼠标%"/*query(查询):表示当前方法是查询方法,类似SQL中的selectItems/Item:表示要查询的实体类,以及返回类型,带s就是返回多个对象By(通过): 表示开始设置条件,类似SQL中的whereTitle: 要查询的字段Matches:表示执行查询分词的字符串,类似SQL中的like*/Iterable<Item> queryItemsByTitleMatches(String title);
//单条件查询@Testpublic void queryOne(){Iterable<Item> items = itemRepository.queryItemsByTitleMatches("鼠标");items.forEach(item -> System.out.println(item));}
多条件查询
//多条件查询--orIterable<Item> queryItemsByTitleMatchesOrBrandMatches(String title,String brand);
//多条件查询@Testpublic void queryOr(){Iterable<Item> items = itemRepository.queryItemsByTitleMatchesOrBrandMatches("鼠标", "罗技");items.forEach(item -> System.out.println(item));}
排序查询
//指定price进行降序查询,desc降序,asc是升序Iterable<Item> queryItemsByTitleMatchesOrBrandMatchesOrderByPriceDesc(String title,String brand);
//排序查询@Testpublic void orderByPrice(){Iterable<Item> items = itemRepository.queryItemsByTitleMatchesOrBrandMatchesOrderByPriceDesc("鼠标", "罗技");items.forEach(item -> System.out.println(item));}
分页查询
//分页查询Page<Item> queryItemsByTitleMatchesOrBrandMatchesOrderByPriceDesc(String title, String brand, Pageable pageable);
//分页查询@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博客
https://blog.csdn.net/Z0412_J0103/article/details/143570062下一篇文章:
相关文章:
Elasticsearch的自定义查询方法到底是啥?
Elasticsearch主要的目的就是查询,默认提供的查询方法是查询全部,不满足我们的需求,可以定义查询方法 自定义查询方法 单条件查询 我们查询的需求:从title中查询所有包含"鼠标"这个分词的商品数据 SELECT * FROM it…...
Jenkins找不到maven构建项目
有的可能没有出现maven这个选项 解决办法:需要安装Maven项目插件 输入Maven Integration plugin...
怎么更换IP地址 改变IP归属地的三种方法
要更换自己的IP地址,您可以按照以下步骤进行操作: 1. 了解IP地址类型:首先,您需要了解您当前使用的IP地址类型。IP地址分为静态IP和动态IP两种。静态IP地址是固定的,使用第三方软件比如S深度IP转换器;而使用…...
C#-异步查询示例
文章速览 CancellationTokenSource 概述代码示例 坚持记录实属不易,希望友善多金的码友能够随手点一个赞。 共同创建氛围更加良好的开发者社区! 谢谢~ CancellationTokenSource 概述 使用System.Threading下的CancellationTokenSource类,进…...
设计模式之适配器模式(从多个MQ消息体中,抽取指定字段值场景)
前言 工作到3年左右很大一部分程序员都想提升自己的技术栈,开始尝试去阅读一些源码,例如Spring、Mybaits、Dubbo等,但读着读着发现越来越难懂,一会从这过来一会跑到那去。甚至怀疑自己技术太差,慢慢也就不愿意再触碰这…...
vue+exceljs前端下载、导出xlsx文件
首先安装插件 npm install exceljs file-saver第一种 简单导出 //页面引入 import ExcelJS from exceljs; import {saveAs} from file-saver; export default {methods: { /** 导出操作 */async handleExportFun() {let that this// 获取当前年月日 用户下载xlsx的文件名称设…...
算法定制LiteAIServer摄像机实时接入分析平台烟火检测算法的主要功能
在现代社会,随着人工智能技术的飞速发展,智能监控系统在公共安全领域的应用日益广泛。其中,烟火检测作为预防火灾的重要手段,其准确性和实时性对于减少火灾损失、保障人民生命财产安全具有重要意义。而算法定制LiteAIServer烟火检…...
用 Python 从零开始创建神经网络(二)
用 Python 从零开始创建神经网络(二) 引言1. Tensors, Arrays and Vectors:2. Dot Product and Vector Additiona. Dot Product (点积)b. Vector Addition (向量加法) 3. A Single Neuron with …...
嘉吉连续第七年亮相进博会
以“新质绿动,共赢未来”为主题,嘉吉连续第七年亮相进博会舞台。嘉吉带来了超过120款产品与解决方案,展示嘉吉在农业、食品、金融和工业等领域以客户为中心的创新成果。这些产品融合了嘉吉在相关领域的前瞻性思考,以及对本土市场的…...
设计模式之单列模式(7种单例模式案例,Effective Java 作者推荐枚举单例模式)
前言 在设计模式中按照不同的处理方式共包含三大类;创建型模式、结构型模式和行为模式,其中创建型模式目前已经介绍了其中的四个;工厂方法模式、抽象工厂模式、生成器模式和原型模式,除此之外还有最后一个单例模式。 单列模式介绍…...
多个服务器共享同一个Redis Cluster集群,并且可以使用Redisson分布式锁
Redisson 是一个高级的 Redis 客户端,它支持多种分布式 Java 对象和服务。其中之一就是分布式锁(RLock),它可以跨多个应用实例在多个服务器上使用同一个 Redis 集群,为这些实例提供锁服务。 当你在不同服务器上运行的…...
100种算法【Python版】第59篇——滤波算法之扩展卡尔曼滤波
本文目录 1 算法步骤2 算法示例2.1 示例描述2.2 python代码3 算法应用:机器人位姿估计扩展卡尔曼滤波(EKF)是一种处理非线性系统的状态估计算法。它通过线性化非线性系统来实现类似于线性卡尔曼滤波的效果。 1 算法步骤 (1)初始化 初始状态: x ^ 0 ∣ 0 \hat{x}_{0|0}...
制造业数字化转型的强大赋能平台:盘古信息IMS OS工软技术底座
在制造业数字化转型的浪潮中,技术底座的选择与实施至关重要。它不仅决定了企业数字化转型的深度与广度,还影响着企业的生产效率、成本控制和市场竞争力。盘古信息IMS OS作为一款强大的工软技术底座,凭借其高度模块化、可配置的设计理念&#…...
域名+服务器+Nginx+宝塔使用SSL证书配置HTTPS
前言 在我的前面文章里,有写过一篇文章 linux服务器宝塔从头部署别人可访问的网站 在这篇文章,有教学怎么使用宝塔和买的服务器的公网IP,以及教怎么打包vue和springboot去部署不用域名的网站让别人访问 那么,这篇文章将在这个…...
UnityAssetsBundle字体优化解决方案
Unity开发某个项目,打包后的apk包体已经高达1.25G了,这是非常离谱的。为了不影响用户体验,需要将apk包体缩小。因为项目本身不包含很多模型以及其他大型资源,排除法将AB包删除,发现app本身就100多M。 由此可以锁定是AB…...
Go的环境搭建以及GoLand安装教程
目录 一、开发环境Golang安装 二、配置环境变量 三、GoLand安装 四、Go 语言的 Hello World 一、开发环境Golang安装 官方网址: The Go Programming Language 1. 首先进入官网,点击Download,选择版本并进行下载: 2. …...
git clone,用https还是ssh
前言 在使用Git去克隆项目时,会遇到https和ssh等形式,这两种又有何种区别呢,本文将重点讨论在具体使用中的问题。 注:第一次使用Git 时,需要先设置全局用户名和邮箱,否则后续使用命令时会报错,也是提醒先添…...
量化交易系统开发-实时行情自动化交易-Okex行情交易数据
19年创业做过一年的量化交易但没有成功,作为交易系统的开发人员积累了一些经验,最近想重新研究交易系统,一边整理一边写出来一些思考供大家参考,也希望跟做量化的朋友有更多的交流和合作。 接下来聊聊基于Okex交易所API获取行情数…...
【重装系统后重新配置2】pycharm 终端无法激活conda环境
pycharm 终端无法激活 conda 环境,但是 Windows本地终端是可以激活的 原因是pycharm 默认的终端是 Windows PowerShell 解决方法有两个: 一、在设置里,修改为cmd 二、下面直接选择...
【LeetCode每日一题】——802.找到最终的安全状态
文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【解题思路】八【时空频度】九【代码实现】十【提交结果】 一【题目类别】 图 二【题目难度】 中等 三【题目编号】 802.找到最终的安全状态 四【题目描述】 有一个有…...
AIGC内容创作流水线:Qwen3-ASR-0.6B赋能语音素材自动化文本化
AIGC内容创作流水线:Qwen3-ASR-0.6B赋能语音素材自动化文本化 你有没有过这样的经历?录完一段精彩的课程讲解、一次深度的访谈对话,或者一段灵光乍现的语音随笔,看着长达几十分钟的音频文件,一想到要把它整理成文字稿…...
别急着升级glibc!解决scikit-learn的libgomp内存错误,我更推荐这个方法
生产环境避坑指南:如何优雅解决scikit-learn的libgomp内存分配错误 当你的AI服务突然抛出cannot allocate memory in static TLS block错误时,第一反应可能是升级系统库——但请先放下这个危险的念头。作为经历过三次生产环境崩溃的运维老兵,…...
高效清理重复文件:三步释放50GB存储空间的智能解决方案
高效清理重复文件:三步释放50GB存储空间的智能解决方案 【免费下载链接】czkawka 一款跨平台的重复文件查找工具,可用于清理硬盘中的重复文件、相似图片、零字节文件等。它以高效、易用为特点,帮助用户释放存储空间。 项目地址: https://gi…...
STM32F103C8T6实战:在最小系统板上运行轻量级TranslateGemma
STM32F103C8T6实战:在最小系统板上运行轻量级TranslateGemma 1. 引言 你有没有想过,在一块只有拇指大小的开发板上运行AI翻译模型?STM32F103C8T6最小系统板,这个通常用来控制LED灯、读取传感器的小家伙,现在居然能跑…...
ROS 之 rosdep 进阶技巧:高效管理workspace依赖关系
1. 从单package到workspace:为什么需要rosdep进阶技巧 刚开始接触ROS的时候,我和大多数开发者一样,每次遇到依赖问题都是手动安装。比如看到Could not find a package configuration file provided by "xxx"这样的错误,…...
Cataclysm: Dark Days Ahead - 在末日废土中生存的终极指南
Cataclysm: Dark Days Ahead - 在末日废土中生存的终极指南 【免费下载链接】Cataclysm-DDA Cataclysm - Dark Days Ahead. A turn-based survival game set in a post-apocalyptic world. 项目地址: https://gitcode.com/GitHub_Trending/ca/Cataclysm-DDA 欢迎来到Cat…...
lychee-rerank-mm快速上手:3步完成图库重排序(输入描述→上传图片→点击排序)
lychee-rerank-mm快速上手:3步完成图库重排序(输入描述→上传图片→点击排序) 1. 项目简介 lychee-rerank-mm是一个专门为RTX 4090显卡优化的智能图片排序工具。它能帮你从一堆图片中快速找出与文字描述最匹配的那些图片,就像有…...
KeyDecoder项目架构分析:理解Flutter应用的数据流与状态管理
KeyDecoder项目架构分析:理解Flutter应用的数据流与状态管理 【免费下载链接】KeyDecoder KeyDecoder app lets you use your smartphone or tablet to decode your mechanical keys in seconds. 项目地址: https://gitcode.com/gh_mirrors/ke/KeyDecoder Ke…...
知识图谱入门第一步:用SpringBoot+HanLP快速构建你的中文实体识别与关系抽取Demo
知识图谱实战:基于SpringBoot与HanLP的中文实体关系抽取系统构建指南 在人工智能与大数据技术蓬勃发展的今天,知识图谱作为结构化知识的重要载体,正在智能搜索、推荐系统、金融风控等领域展现出巨大价值。但对于许多刚接触这一领域的开发者而…...
PvZ Toolkit:植物大战僵尸游戏体验增强工具全解析
PvZ Toolkit:植物大战僵尸游戏体验增强工具全解析 【免费下载链接】pvztoolkit 植物大战僵尸 PC 版综合修改器 项目地址: https://gitcode.com/gh_mirrors/pv/pvztoolkit 问题引入:植物大战僵尸玩家的共同痛点 在植物大战僵尸游戏过程中…...
