当前位置: 首页 > news >正文

JAVA-报表模糊搜索询易实现

背景:
一般文件报表经常会需要搜各个表头对应内容,如果支持全部类型切换搜索,操作起来就不够便捷。而且这个报表是测试自己用的,准确性可以不用太要求,所以更想要那中输入关键字命中任意表记录内容的模糊匹配功能。

方法一:解析搜索类型和关键字,加入到查询条件。
方法二:遍历搜索结果,解析成json或key-value,逐一匹配,符合则加入搜索结果。
方法三:通过stream API直接过滤搜索结果,符合的加入搜索结果。相当于搜索结果全文匹配。

方法一如果报表查表很单一的话就非常适用,但如果是不同条件查不同表组合那就会非常麻烦,而且查询条件也需要各种拼奏。
后两者显然方法三更便捷。

具体实现:

public JSONObject getReportList(String env, Map<String, Object> request){string[]keyWords = request. containskey("keyword") ? request.get("keyWord"). tostring().split(" +") : null;   // 支持空格符分隔关键字 List<Map<string,Object>> list = 分页后表搜索结果List<Map<String,Object>>listcount=不分页下的搜索总数 if (keywords != null && keybords.length >θ){int preCount = request.containskey("count") ? Integer .parseInt(request.get("count").toString()) : 0;// List<Map<String,object>> list2 = null;for (String keyWord : keywords){System.out,print1n("keyWord = " + keyWord);list = 1ist.stream().fi1ter(s -> s.tostring().contains(keyword)) .collect(Collectors.toList()); }System.out.println("list2 =- + list); int count2 = list.size()+ preCount;System.out.println("count2=" + count2);//不足一页就补数if (count2<pageSize 8& currentPage * pageSize < count){request.put("currentPage",currentPage + 1);JSONObject addList = getReportList(env,request); if (addlist != nul1){list.addAll((Collection<?extends Map<String,Object>>) addList.get("item"));}request.put("list",list); }jsonObject.put("iten", 1ist); jsonObject.put("total", count2);}else {jsonObject,put("iten",list); jsonObject,put("total", count); }return json0bject;
}

这种方法的小坑:
1、翻页会有问题。可能因为补数导致制页后的数据重复出现,但如果搜索结果少于一页就没有差别。
2、如果关键字不够明确会导致匹配到很多无效数据。如关键字关键字=1
3、多个关键字可能导致性能略低。
不过对于比如指定日期,指定类目这样子的关键字,已经足够精确和高效了。|

相关文章:

JAVA-报表模糊搜索询易实现

背景: 一般文件报表经常会需要搜各个表头对应内容&#xff0c;如果支持全部类型切换搜索&#xff0c;操作起来就不够便捷。而且这个报表是测试自己用的&#xff0c;准确性可以不用太要求&#xff0c;所以更想要那中输入关键字命中任意表记录内容的模糊匹配功能。 方法一:解析搜…...

牛客 7.13 月赛(留 C逆元)

B-最少剩几个&#xff1f;_牛客小白月赛98 (nowcoder.com) 思路 奇数偶数 奇数&#xff1b;奇数*偶数 奇数 所以在既有奇数又有偶数时&#xff0c;两者结合可以同时删除 先分别统计奇数&#xff0c;偶数个数 若偶个数大于奇个数&#xff0c;答案是偶个数-奇个数 若奇个数…...

FPGA之术语

FPGA之术语 IOSTANDARDDIFF_SSTL12:LVCMOS33:sys_clk_p/n:rst_n:UART时钟JTAG:GPIOONFIPCIe IOSTANDARD 在电子工程领域&#xff0c;DIFF_SSTL12和LVCMOS33是两种不同的电气标准&#xff0c;用于定义信号的电压级别和特性。 IOSTANDARD是一个在FPGA&#xff08;现场可编程门阵…...

WPF透明置顶窗口wine适配穿透问题解决

一、透明窗口全屏时&#xff0c;鼠标不穿透 问题描述 我有一个透明窗口&#xff0c;它是一个全屏置顶窗口&#xff0c;窗口里面有一个工具条&#xff0c;可以通过鼠标拖动工具条的位置&#xff0c;程序启动后&#xff0c;在不点击工具条的时候&#xff0c;鼠标是可以穿透的&a…...

浅析Kafka Streams中KTable.aggregate()方法的使用

KTable.aggregate() 方法是 Apache Kafka Streams API 中用于对流数据进行状态化聚合的核心方法之一。这个方法允许你根据一个键值&#xff08;通常是<K,V>类型&#xff09;的流数据&#xff0c;应用一个初始值和一个聚合函数&#xff0c;来累积和更新一个状态&#xff0…...

java word转pdf、word中关键字位置插入图片 工具类

java word转pdf、word中关键字位置插入图片 工具类 1.pom依赖 <dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.15</version></dependency><dependency><groupId>org.apa…...

jail内部ubuntu apt升级失败问题解决

在FreeBSD jail 里安装启动Ubuntu jammy系统&#xff0c;每次装好执行jexec ubjammy sh进入Ubuntu系统后&#xff0c;执行apt update报错。 这个问题困惑了好久&#xff0c;突然有一天仔细去看报错信息&#xff0c;查看了(man 5 apt.conf) &#xff0c;才搞定问题。简单来说就是…...

迎接AI新时代:GPT-5的技术飞跃与未来展望

引言 随着人工智能技术的迅猛发展&#xff0c;大语言模型在过去几年取得了显著进步。OpenAI最新的声明表明&#xff0c;GPT-5将在一年半后发布&#xff0c;并将带来从高中生智力水平到博士生智力水平的飞跃。这一突破引起了科技界和公众的广泛关注。本文将从技术突破预测、智能…...

Snap Video:用于文本到视频合成的扩展时空变换器

图像生成模型的质量和多功能性的显著提升&#xff0c;研究界开始将其应用于视频生成领域。但是视频内容高度冗余&#xff0c;直接将图像模型技术应用于视频生成可能会降低运动的保真度和视觉质量&#xff0c;并影响可扩展性。来自 Snap 的研究团队及其合作者提出了 "Snap …...

实验8 视图创建与管理实验

一、实验目的 理解视图的概念。掌握创建、更改、删除视图的方法。掌握使用视图来访问数据的方法。 二、实验内容 在job数据库中&#xff0c;有聘任人员信息表&#xff1a;Work_lnfo表&#xff0c;其表结构如下表所示&#xff1a; 其中表中练习数据如下&#xff1a; 1.‘张明…...

C++ 开源库

1 PDFium PDFium 是一个开源的 PDF 渲染和处理库&#xff0c;最初由 Foxit Software 开发&#xff0c;并于2014年捐赠给了 Chromium 项目。PDFium 旨在为各种应用程序提供高效、灵活的 PDF 渲染和操作功能。 2 代码地址 https://github.com/chromium/pdfium 主要特性 渲染…...

LabVIEW滤波器性能研究

为了研究滤波器的滤波性能&#xff0c;采用LabVIEW设计了一套滤波器性能研究系统。该系统通过LabVIEW中的波形生成函数&#xff0c;输出幅值及频率可调的正弦波和白噪声两种信号&#xff0c;并将白噪声与正弦波叠加&#xff0c;再通过滤波器输出纯净的正弦波信号。系统通过FFT&…...

『C++成长记』vector模拟实现

&#x1f525;博客主页&#xff1a;小王又困了 &#x1f4da;系列专栏&#xff1a;C &#x1f31f;人之为学&#xff0c;不日近则日退 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 目录 一、存储结构 二、默认成员函数 &#x1f4d2;2.1构造函数 &#x1f4d2;2.2拷贝…...

【Mac】Charles for Mac(HTTP协议抓包工具)及同类型软件介绍

软件介绍 Charles for Mac 是一款功能强大的网络调试工具&#xff0c;主要用于HTTP代理/HTTP监视器。以下是它的一些主要特点和功能&#xff1a; 1.HTTP代理&#xff1a;Charles 可以作为HTTP代理服务器&#xff0c;允许你查看客户端和服务器之间的所有HTTP和SSL/TLS通信。 …...

LVS集群及其它的NAT模式

1.lvs集群作用&#xff1a;是linux的内核层面实现负载均衡的软件&#xff1b;将多个后端服务器组成一个高可用、高性能的服务器的集群&#xff0c;通过负载均衡的算法将客户端的请求分发到后端的服务器上&#xff0c;通过这种方式实现高可用和负载均衡。 2.集群和分布式&#…...

【RNN练习】天气预测

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 一、环境及数据准备 1. 我的环境 语言环境&#xff1a;Python3.11.9编译器&#xff1a;Jupyter notebook深度学习框架&#xff1a;TensorFlow 2.15.0 2. 导…...

prompt第四讲-fewshot

文章目录 前提回顾FewShotPromptTemplateforamt格式化 前提回顾 前面已经实现了一个翻译助手了[prompt第三讲-PromptTemplate]&#xff0c;prompt模板设计中&#xff0c;有说明、案例、和实际的问题 # -*- coding: utf-8 -*- """ Time &#xff1a; 2024/7/8 …...

StarRocks分布式元数据源码解析

1. 支持元数据表 https://github.com/StarRocks/starrocks/pull/44276/files 核心类&#xff1a;LogicalIcebergMetadataTable&#xff0c;Iceberg元数据表&#xff0c;将元数据的各个字段做成表的列&#xff0c;后期可以通过sql操作从元数据获取字段&#xff0c;这个表的组成…...

阅读笔记——《Fuzz4All: Universal Fuzzing with Large Language Models》

【参考文献】Xia C S, Paltenghi M, Le Tian J, et al. Fuzz4all: Universal fuzzing with large language models[C]//Proceedings of the IEEE/ACM 46th International Conference on Software Engineering. 2024: 1-13.【注】本文仅为作者个人学习笔记&#xff0c;如有冒犯&…...

【C++】使用gtest做单元测试框架写单元测试

本文主要介绍在将gtest框架引入到项目里过程中遇到的问题。 我的需求如下: 用CMake构建项目。我要写一些测试程序验证某些功能,但是不想每一个测试都新建一个main函数。 因为新建一个main函数就要在CMakeList.txt里增加一个project,非常不方便。 于是我搜了下,C++里有没…...

保姆级教程:用YOLO+DeepSORT在UCF101-24数据集上实现实时时空动作检测

从零搭建实时时空动作检测系统&#xff1a;YOLODeepSORT实战指南 当你在篮球场边拍摄一段视频&#xff0c;能否让AI自动标记出每个球员的投篮动作&#xff1f;或者在游泳比赛中实时框选运动员的跳水瞬间&#xff1f;这就是时空动作检测技术的魅力所在——它不仅要知道"发生…...

突破学术排版瓶颈:mpMath插件的4大技术解决方案

突破学术排版瓶颈&#xff1a;mpMath插件的4大技术解决方案 【免费下载链接】mpMath 项目地址: https://gitcode.com/gh_mirrors/mpma/mpMath 当物理系研究生小林在微信公众号编辑器中第12次尝试插入傅里叶变换公式时&#xff0c;屏幕上依然是一堆错位的希腊字母——这…...

贾子公理体系全场景应用白皮书——从底层逻辑根服务器到数字政府、金融、AI等十大领域落地

GG3M贾子公理体系&#xff1a;一套底层公理贯通十大全场景应用落地副标题&#xff1a; 贾子公理体系全场景应用白皮书——从底层逻辑根服务器到数字政府、金融、AI等十大领域落地摘要&#xff1a; 贾子公理体系是GG3M项目的底层逻辑根服务器&#xff0c;以自洽可演绎的公理系统…...

DanKoe 视频笔记:阅读:改变你生活的简单习惯:概述与引言

https://github.com/OpenDocCN/wealth-notes-zh/raw/master/docs/dankoe/img22971bb5176092c90f7464d7a7aa6e45.png 在本节课中&#xff0c;我们将学习如何通过培养阅读习惯来深刻地改变你的生活。我们将探讨阅读的重要性、如何选择书籍、如何有效阅读&#xff0c;以及如何将阅…...

别再乱改NV了!深入理解高通Modem配置:从UI Task到PDN管理,这些底层逻辑你得懂

高通Modem配置深度解析&#xff1a;从UI Task到PDN管理的底层逻辑 1. 理解Modem配置的本质 在移动通信领域&#xff0c;高通平台的Modem配置一直是个既关键又复杂的课题。许多开发者习惯性地复制粘贴NV配置参数&#xff0c;却对背后的运行机制一知半解。这种"知其然而不知…...

51页可编辑PPT | 农产品区块链溯源信息化平台整体解决方案

许多公司在数字化转型的过程中&#xff0c;常常面临数据孤岛、流程效率低下和客户体验不佳等问题。这些问题导致决策缓慢&#xff0c;难以快速响应市场变化&#xff0c;最终影响公司竞争力。方案的核心目标是帮助企业通过整合数据、优化流程和提升客户体验&#xff0c;实现数字…...

OpenClaw多模态扩展:结合百川2-13B-4bits与OCR的图像信息处理流程

OpenClaw多模态扩展&#xff1a;结合百川2-13B-4bits与OCR的图像信息处理流程 1. 为什么需要多模态能力扩展&#xff1f; 上周我需要整理一批技术文档的截图&#xff0c;包含代码片段、错误日志和流程图。手动转录不仅耗时&#xff0c;还容易出错。这让我开始思考&#xff1a…...

为什么SwinIR在图像修复中吊打CNN?深入解析Swin-Transformer的三大优势

SwinIR如何重新定义图像修复&#xff1f;Transformer架构的三大技术革命 当你在手机相册里翻出一张十年前的老照片&#xff0c;却发现它模糊得连人脸都难以辨认时&#xff0c;传统CNN模型或许能帮你恢复部分细节&#xff0c;但边缘依然会显得生硬失真。这正是SwinIR要解决的核心…...

AI系统-20AI芯片ISP视觉系统介绍

人有五感&#xff1a;眼睛、耳朵、鼻子、舌头和皮肤。 这些器官中的专门细胞和组织会接收原始刺激&#xff0c;并将其转化为神经系统可以使用的信号。 神经将信号传递到大脑&#xff0c;大脑将其解释为影像&#xff08;视觉&#xff09;、声音&#xff08;听觉&#xff09;、气…...

前端开发者必看:5个提升AI提示词效果的实战技巧(附代码示例)

前端开发者必看&#xff1a;5个提升AI提示词效果的实战技巧&#xff08;附代码示例&#xff09; 当ChatGPT帮你生成React组件却总跑偏&#xff0c;当Copilot给出的代码建议总差那么点意思——作为前端开发者&#xff0c;你可能已经意识到&#xff1a;AI工具的表现力&#xff0c…...