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

ElasticSearch 查询方法示例 java

public List<PricePolicyConditionDTO> queryEs(OrderPriceOutDTO param, List<String> materialCodeList, List<String> categoryCodeList) {BoolQueryBuilder mainQueryBoolBuilder = new BoolQueryBuilder();//销售组织if (CharSequenceUtil.isNotEmpty(param.getSalesOrgCode())) {mainQueryBoolBuilder.must(QueryBuilders.termQuery(PricePolicyEsDataDTO.Fields.salesOrgCode + KEYWORD_SUFFIX, param.getSalesOrgCode()));}//价格类型if (CharSequenceUtil.isNotEmpty(param.getPriceTypeName())) {mainQueryBoolBuilder.must(QueryBuilders.termQuery(PricePolicyEsDataDTO.Fields.priceType + KEYWORD_SUFFIX, param.getPriceTypeName()));}//and ((policy_type = 'Foc') or (policy_type != 'Foc' and currency= #{currncy}))if (CharSequenceUtil.isNotEmpty(param.getCurrency())) {BoolQueryBuilder query1 = QueryBuilders.boolQuery();query1.must(QueryBuilders.termQuery(PricePolicyEsDataDTO.Fields.policyType + KEYWORD_SUFFIX, CommonConstant.FOC));BoolQueryBuilder query2 = QueryBuilders.boolQuery();query2.mustNot(QueryBuilders.termsQuery(PricePolicyEsDataDTO.Fields.policyType + KEYWORD_SUFFIX, CommonConstant.FOC));query2.must(QueryBuilders.termQuery(PricePolicyEsDataDTO.Fields.currency + KEYWORD_SUFFIX, param.getCurrency()));BoolQueryBuilder query3 = QueryBuilders.boolQuery();query3.should(query1);query3.should(query2);mainQueryBoolBuilder.must(query3);}//and policy_start_date >= sysdaye() and  policy_end_date <= sysdaye()mainQueryBoolBuilder.must(QueryBuilders.rangeQuery(PricePolicyEsDataDTO.Fields.policyStartDate).lte(LocalTimeUnit.getNowTime()));mainQueryBoolBuilder.must(QueryBuilders.rangeQuery(PricePolicyEsDataDTO.Fields.policyEndDate).gte(LocalTimeUnit.getNowTime()));// and [  (object_type = 'Product' and (object_code like '' or object_code like '' ) ) OR//  (object_type = 'ProductCategory' and (object_code like '' or object_code like '' ) )//  ]if (CollUtil.isNotEmpty(materialCodeList) || CollUtil.isNotEmpty(categoryCodeList)) {BoolQueryBuilder query4 = QueryBuilders.boolQuery();if (CollUtil.isNotEmpty(materialCodeList)) {BoolQueryBuilder query3 = QueryBuilders.boolQuery();BoolQueryBuilder query1 = QueryBuilders.boolQuery();query1.must(QueryBuilders.termQuery(PricePolicyEsDataDTO.Fields.objectType + KEYWORD_SUFFIX, CommonConstant.PRODUCT));query3.must(query1);BoolQueryBuilder query2 = QueryBuilders.boolQuery();materialCodeList.forEach(v -> {WildcardQueryBuilder queryBuilder1 = QueryBuilders.wildcardQuery(PricePolicyEsDataDTO.Fields.objectCode + KEYWORD_SUFFIX, "*" + v + "*");query2.should(queryBuilder1);});query3.must(query2);query4.should(query3);}if (CollUtil.isNotEmpty(categoryCodeList)) {BoolQueryBuilder query3 = QueryBuilders.boolQuery();BoolQueryBuilder query1 = QueryBuilders.boolQuery();query1.must(QueryBuilders.termQuery(PricePolicyEsDataDTO.Fields.objectType + KEYWORD_SUFFIX, CommonConstant.PRODUCT_CATEGORY));query3.must(query1);BoolQueryBuilder query2 = QueryBuilders.boolQuery();categoryCodeList.forEach(v -> {WildcardQueryBuilder queryBuilder1 = QueryBuilders.wildcardQuery(PricePolicyEsDataDTO.Fields.objectCode + KEYWORD_SUFFIX, "*" + v + "*");query2.should(queryBuilder1);});query3.must(query2);query4.should(query3);}mainQueryBoolBuilder.must(query4);}Query query = new NativeSearchQueryBuilder().withQuery(mainQueryBoolBuilder).build();SearchHits<PricePolicyEsDataDTO> searchHits = elasticsearchRestTemplate.search(query, PricePolicyEsDataDTO.class);List<PricePolicyEsDataDTO> collect = searchHits.getSearchHits().stream().map(SearchHit::getContent).collect(Collectors.toList());List<PricePolicyConditionDTO> policyConditionList = BeanUtil.copyToList(collect, PricePolicyConditionDTO.class);return dataScopeFilter(param, policyConditionList);}

相关文章:

ElasticSearch 查询方法示例 java

public List<PricePolicyConditionDTO> queryEs(OrderPriceOutDTO param, List<String> materialCodeList, List<String> categoryCodeList) {BoolQueryBuilder mainQueryBoolBuilder new BoolQueryBuilder();//销售组织if (CharSequenceUtil.isNotEmpty(pa…...

5G毫米波通信中的关键技术

随着5G技术的快速发展&#xff0c;毫米波通信作为其中的一项重要技术&#xff0c;在高速数据传输、低延迟通信和大规模连接等方面具有显著的优势。本文将探讨5G毫米波通信中的关键技术&#xff0c;包括毫米波频段的选择、信号处理技术和MIMO技术等。 一、毫米波频段的选择 毫米…...

2.3.3 交换机的RSTP技术

实验2.3.3 交换机的RSTP技术 一、任务描述二、任务分析三、具体要求四、实验拓扑五、任务实施1.交换机的基本配置。2.开启交换机的STP。3.配置SW3A和SW3B上STP的优先级。将SW3A配置为根交换机&#xff0c;SW3B配置为备用根交换机。4.配置SW2A和SW2B的边缘接口 六、任务验收七、…...

国外访问学者/博士后留学人员反诈骗指南

访问学者/博士后/联合培养博士人员出国后&#xff0c;对当地环境及政策不熟悉&#xff0c;需要提高防范意识&#xff0c;为此&#xff0c;知识人网小编特整理这篇反诈骗指南&#xff0c;提醒留学人员防微杜渐、未雨绸缪。 近日&#xff0c;多国使馆发布相关提醒&#xff1a;不法…...

设计模式之组合模式-创建层次化的对象结构

目录 概述概念主要角色应用场景 组合模式的实现类图NS图基本代码组合模式的精髓意外收获&#xff08;❀❀&#xff09; 应用示例-公司组织架构管理需求结构图代码 组合模式的优缺点优点缺点 总结 概述 概念 组合模式是一种结构型设计模式&#xff0c;它允许将对象组合成树形结…...

Windows 有趣功能集锦

Windows 有趣功能集锦 隐藏文件或文件夹 CMD 运行以下命令隐藏 # attrib h <文件或文件夹名称> attrib r h s a 测试显示 # attrib h <文件或文件夹名称> attrib -r -h -s -a 测试使视频显示为图片 准备一个视频文件和一个需要显示的图片先将视频压缩成压缩文…...

【nodejs版playwright】02-支持多套测试环环境执行用例

日常测试中&#xff0c;一套测试用例需支持在不同的测试环境运行&#xff0c;如staging、production 因为涉及不同的测试环境&#xff0c;那使用的环境变量或参数就不一样&#xff0c;如staging登录可能用到的用户名是A&#xff0c;而production可能用到的是b。 所以需要有一个…...

React高阶组件(Higher-Order Components, HOCs)

React 高阶组件 (Higher Order Components, HOCs) 是一种模式&#xff0c;让组件具备一定的扩展能力。它是函数式编程思想在 React 应用程序中的体现。HOCs 可以让你重用组件&#xff0c;提高组件的可复用性。 HOCs 是什么&#xff1f; 高阶组件实际上是一个函数&#xff0c;…...

利用RoboBrowser库和爬虫代理实现微博视频的爬取

技术概述 微博是一个社交媒体平台&#xff0c;用户可以在上面发布和分享各种内容&#xff0c;包括文字、图片、音频和视频。微博视频是微博上的一种重要的内容形式&#xff0c;有时我们可能想要下载微博视频到本地&#xff0c;以便于观看或分析。但是&#xff0c;微博视频并没…...

使用Redis实现缓存及对应问题解决

一、为什么需要Redis作缓存&#xff1f; 在业务场景中&#xff0c;如果有些数据需要极高频的存取&#xff0c;每次都要在mysql中查询的话代价太大&#xff0c;假如有一个存在于客户端和mysql之间的存储空间&#xff0c;每次可以在这空间中进行存取操作&#xff0c;就会减轻mys…...

【穿透科技】P2P穿透模块介绍

P2P穿透+一站式音视频解决方案路过看风景P2P隧道模块(pgLibTunnel) 1.功能介绍 P2P隧道是在Peergine中间件基础上实现的一个TCP隧道应用(通过P2P来传输TCP流量),包括服务器和客户端程序。它可以协助从公网或者从另一私网访问某个私网内部的计算机和网络设备。其优点是无需…...

中国第二批,11个大模型备案获批

加上首批的 10 余个大模型&#xff0c;目前已有超过 20 个大模型获得审批。 据钛媒体独家报道&#xff0c;国内第二批通过备案的AI大模型包括11家公司&#xff0c;部分已面向全社会开放服务。加上首批的10余个大模型&#xff0c;目前已有超过20个大模型获得备案。 新一批备案…...

一文搞定多端开发,做全栈大牛 附三大企业实战项目

一个功能三套代码 一改需求就是加不完的班&#xff1f; 不存在的&#xff0c;告别改改改 拥抱多端开发 一套代码搞定多个平台 高效开发&#xff1a;一套代码&#xff0c;多端通用 根据统计数据&#xff0c;全球移动设备用户数已经超过了50亿。随着智能手机、平板电脑等移动…...

带有滑动菜单指示器的纯 CSS 导航选项卡

效果展示 CSS 知识点 filter 属性回顾 transition 属性回顾 使用单选框实现导航菜单的思路 单选框当点击完成后就会有一个:checked属性&#xff0c;可以利用这个属性来实现导航菜单底部滑动块的滑动动画和当前菜单项激活状态的管理。 整体页面结构 <div class"tab…...

Java学习笔记41——接口组成更新

接口祖成更新 接口组成更新接口组成更新概述接口的组成接口中的默认方法接口中的静态方法接口中的私有方法 接口组成更新 接口组成更新概述 接口的组成 常量 public static final 抽象方法 public abstract 默认方法&#xff08;Java8&#xff09;静态方法&#xff08;Java8…...

iview实现table里面每行数据的跳转

我的需求是跳转到第三方网站&#xff0c;看官方是写了如何跳转站内路由&#xff0c;不符合我的要求&#xff0c;在csdn发现了一篇文章&#xff0c;我贴一下代码 <template><Table border :columns"ReportColumns" :data"ReportData"><templ…...

Docker快速搭建Drupal内容管理系统并远程访问

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525;个人专栏:《Linux深造日志》《C干货基地》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 文章目录 前言1. Docker安装Drupal2. 本地局域网访问3 . Linux 安装cpolar4. 配置Drupal公网访问地址5. 公网远程访问Drupal…...

Ansible优化大全

文章目录 一、关闭系统信息收集二、开启加速 Ansible 执行速度修改配置文件/etc/ansible/ansible.cfg由于该功能与sudo冲突&#xff0c;必须关闭 requiretty 选项方法一方法二 参考文章&#xff1a; https://blog.csdn.net/o0o0o0D/article/details/110998873 一、关闭系统信息…...

Python|OpenCV-图像的添加和混合操作(8)

前言 本文是该专栏的第8篇,后面将持续分享OpenCV计算机视觉的干货知识,记得关注。 在使用OpenCV库对图像操作的时候,有时需要对图像进行运算操作,类似于加法,减法,位操作等处理。而本文,笔者将针对OpenCV对图像的添加,混合以及位操作进行详细的介绍说明和使用。 下面,…...

Vue3+vite+cesium环境搭建

引言 目前有不少vue3cesium的配置教学&#xff0c;存在以下两个问题&#xff1a; &#xff08;1&#xff09;vue3cli方式&#xff0c;随着项目的迭代&#xff0c;npm run serve 启动调试很慢&#xff1b; &#xff08;2&#xff09;vue3vite 确实能将调试启动提升不少的&…...

C++_核心编程_多态案例二-制作饮品

#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为&#xff1a;煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例&#xff0c;提供抽象制作饮品基类&#xff0c;提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...

3.3.1_1 检错编码(奇偶校验码)

从这节课开始&#xff0c;我们会探讨数据链路层的差错控制功能&#xff0c;差错控制功能的主要目标是要发现并且解决一个帧内部的位错误&#xff0c;我们需要使用特殊的编码技术去发现帧内部的位错误&#xff0c;当我们发现位错误之后&#xff0c;通常来说有两种解决方案。第一…...

为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?

在建筑行业&#xff0c;项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升&#xff0c;传统的管理模式已经难以满足现代工程的需求。过去&#xff0c;许多企业依赖手工记录、口头沟通和分散的信息管理&#xff0c;导致效率低下、成本失控、风险频发。例如&#…...

前端导出带有合并单元格的列表

// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...

linux 下常用变更-8

1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行&#xff0c;YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID&#xff1a; YW3…...

鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/

使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题&#xff1a;docker pull 失败 网络不同&#xff0c;需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...

dify打造数据可视化图表

一、概述 在日常工作和学习中&#xff0c;我们经常需要和数据打交道。无论是分析报告、项目展示&#xff0c;还是简单的数据洞察&#xff0c;一个清晰直观的图表&#xff0c;往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server&#xff0c;由蚂蚁集团 AntV 团队…...

Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)

目录 一、&#x1f44b;&#x1f3fb;前言 二、&#x1f608;sinx波动的基本原理 三、&#x1f608;波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、&#x1f30a;波动优化…...

springboot整合VUE之在线教育管理系统简介

可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生&#xff0c;小白用户&#xff0c;想学习知识的 有点基础&#xff0c;想要通过项…...

push [特殊字符] present

push &#x1f19a; present 前言present和dismiss特点代码演示 push和pop特点代码演示 前言 在 iOS 开发中&#xff0c;push 和 present 是两种不同的视图控制器切换方式&#xff0c;它们有着显著的区别。 present和dismiss 特点 在当前控制器上方新建视图层级需要手动调用…...