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

springCloud(day09-Elasticsearch02)

目录

Elasticsearch02-01.DSL 查询 - 快速入门

Elasticsearch02-02.DSL 查询 - 叶子查询

Elasticsearch02-03.DSL 查询 - 复合查询

Elasticsearch02-04.DSL 查询 - 排序和分页

Elasticsearch02-05.DSL 查询 - 深度分页问题

Elasticsearch02-06.DSL 查询 - 高亮显示

Elasticsearch02-07.JavaRestClient 查询 - 快速入门

Elasticsearch02-08.JavaRestClient 查询 - 构建查询条件

问题:什么时候用must?什么时候用filter?

问题:如何将一段代码抽取为公共方法?

Elasticsearch02-09.JavaRestClient 查询 - 排序和分页

Elasticsearch02-10.JavaRestClient 查询 - 高亮显示

Elasticsearch02-11. 聚合 - 聚合的分类

Elasticsearch02-12. 聚合 - DSL 实现聚合

Elasticsearch02-13. 聚合 - Java 客户端实现聚合

末尾页


Elasticsearch02-01.DSL 查询 - 快速入门

Elasticsearch02-02.DSL 查询 - 叶子查询

Elasticsearch02-03.DSL 查询 - 复合查询

Elasticsearch02-04.DSL 查询 - 排序和分页

Elasticsearch02-05.DSL 查询 - 深度分页问题

Elasticsearch02-06.DSL 查询 - 高亮显示

Elasticsearch02-07.JavaRestClient 查询 - 快速入门

Elasticsearch02-08.JavaRestClient 查询 - 构建查询条件

问题:什么时候用must?什么时候用filter?

关键词搜索、全文匹配、需要排序must城市、价格、状态、范围、精确筛选filter既要搜索又要过滤must + filter 组合

全文搜索用 must,条件过滤用 filter!

问题:如何将一段代码抽取为公共方法?

ctrl+alt+m

Elasticsearch02-09.JavaRestClient 查询 - 排序和分页

@Test void testPageAndSort() throws IOException { int pageNo = 1, pageSize = 5; // 1.创建Request SearchRequest request = new SearchRequest("items"); // 2.组织请求参数 // 2.1.搜索条件参数 request.source().query(QueryBuilders.matchQuery("name", "脱脂牛奶")); // 2.2.排序参数 request.source().sort("price", SortOrder.ASC); // 2.3.分页参数 request.source().from((pageNo - 1) * pageSize).size(pageSize); // 3.发送请求 SearchResponse response = client.search(request, RequestOptions.DEFAULT); // 4.解析响应 handleResponse(response); }

Elasticsearch02-10.JavaRestClient 查询 - 高亮显示

@Test void testHighlight() throws IOException { // 1.创建Request SearchRequest request = new SearchRequest("items"); // 2.组织请求参数 // 2.1.query条件 request.source().query(QueryBuilders.matchQuery("name", "脱脂牛奶")); // 2.2.高亮条件 request.source().highlighter( SearchSourceBuilder.highlight() .field("name") .preTags("<em>") .postTags("</em>") ); // 3.发送请求 SearchResponse response = client.search(request, RequestOptions.DEFAULT); // 4.解析响应 handleResponse(response); }

Elasticsearch02-11. 聚合 - 聚合的分类

Elasticsearch02-12. 聚合 - DSL 实现聚合

Elasticsearch02-13. 聚合 - Java 客户端实现聚合

@Test void testAgg() throws IOException { // 1.创建Request SearchRequest request = new SearchRequest("items"); // 2.准备请求参数 BoolQueryBuilder bool = QueryBuilders.boolQuery() .filter(QueryBuilders.termQuery("category", "手机")) .filter(QueryBuilders.rangeQuery("price").gte(300000)); request.source().query(bool).size(0); // 3.聚合参数 request.source().aggregation( AggregationBuilders.terms("brand_agg").field("brand").size(5) ); // 4.发送请求 SearchResponse response = client.search(request, RequestOptions.DEFAULT); // 5.解析聚合结果 Aggregations aggregations = response.getAggregations(); // 5.1.获取品牌聚合 Terms brandTerms = aggregations.get("brand_agg"); // 5.2.获取聚合中的桶 List<? extends Terms.Bucket> buckets = brandTerms.getBuckets(); // 5.3.遍历桶内数据 for (Terms.Bucket bucket : buckets) { // 5.4.获取桶内key String brand = bucket.getKeyAsString(); System.out.print("brand = " + brand); long count = bucket.getDocCount(); System.out.println("; count = " + count); } }

末尾页

摘要:本文介绍了Elasticsearch的DSL查询和Java客户端操作,包括叶子查询、复合查询、排序分页、高亮显示等核心功能。重点讲解了must和filter的使用场景:must用于全文搜索和关键词匹配,filter适用于精确筛选和范围查询。同时提供了代码重构技巧(Ctrl+Alt+M抽取公共方法)以及聚合功能的实现方式。最后还提及了深度分页问题的处理方案,为Elasticsearch的查询操作提供了全面指导。

http://www.jsqmd.com/news/605935/

相关文章:

  • 2026年商业综合体民用管道清洗/污水管道清洗/管道清洗养护可靠供应商推荐 - 行业平台推荐
  • StructBERT中文Large模型效果展示:跨行业术语语义迁移能力(医疗→金融术语映射)
  • IndexTTS2 V23远程访问设置:通过Nginx配置安全远程使用WebUI
  • 2026年4月非固化防水涂料门店怎么选择,非固化防水涂料,耐磨损使用寿命长 - 品牌推荐师
  • 3步实现Windows系统美化:macOS鼠标指针无缝迁移方案
  • Unity中加载AB包(本地加载)
  • 免费开源一款聚合支付系统,已封装微信、支付宝、PayPal、京东、银联、QQ等支付方式
  • SEO_10个简单有效的SEO技巧,快速提升网站排名(280 )
  • 食药环稽查快速农药残留检测仪推荐指南:玉米赤霉烯酮检测仪/瘦肉精检测仪/肉类水分检测仪/胶体金检测/酱油品质检测仪/选择指南 - 优质品牌商家
  • 告别手动换算!用C语言共用体(union)和结构体位域(bit-field)优雅搞定LCD段码屏驱动
  • Qwen3-VL-8B聊天系统部署详解:代理服务器、vLLM后端,一文学会
  • Phi-4-mini-reasoning效果展示:离散数学关系性质判定与反例构造生成
  • GLM-4-9B-Chat-1M实战手册:vLLM日志分析+Chainlit用户行为埋点配置指南
  • 2026梯式热镀锌桥架优质专业厂家推荐榜:槽式热浸锌桥架/槽式热镀锌桥架/槽式电缆桥架/模压桥架/选择指南 - 优质品牌商家
  • CasRel模型在ComfyUI工作流中的集成:可视化关系抽取流程搭建
  • Kandinsky-5.0-I2V-Lite-5s效果展示:让照片“活”起来的惊艳案例
  • 2026年医院化粪池清理工程/化粪池清理/化粪池清理维护推荐品牌厂家 - 行业平台推荐
  • 别再死记硬背了!用Python代码画个图,5分钟搞懂DFA和NFA的区别
  • 企业网站应该如何设计?高端网站设计有诀窍!
  • 手把手教你用LVGL+FreeRTOS在STM32上实现多页面切换(附完整源码)
  • Mac用户也能玩转3D生成?Hunyuan3D-2mini在M1芯片上的实测体验与优化技巧
  • 告别锚框!用CenterPoint搞定自动驾驶3D检测,实测Waymo/NuScenes双SOTA
  • 2026闭式冷却塔优质品牌推荐 全场景选型参考 - 优质品牌商家
  • 2026年口碑好的化粪池清理服务/化粪池清理定期维护实力工厂推荐 - 行业平台推荐
  • 信号处理期末开卷考,我靠这份历年计算题考点梳理拿了高分
  • Z-Image Atelier 与Git版本控制结合:团队协作下的提示词工程管理
  • WD5030降压芯片实战:如何为你的DIY电源模块选对电容和电感(附参数计算)
  • LLM的创造力与不确定性:概率系统的双面性
  • QMCDecode终极指南:3步解锁QQ音乐加密文件,让音乐自由播放
  • 2026年美甲店LED美甲灯/UV美甲灯主流厂家对比评测 - 行业平台推荐