ElasticSearch - 基于 JavaRestClient 查询文档(match、精确、复合查询,以及排序、分页、高亮)
发布日期:2025-03-29 17:46:42 浏览次数:5 分类:精选文章

本文共 1824 字,大约阅读时间需要 6 分钟。

基于 JavaRestClient 查询文档

一、基于 JavaRestClient 查询文档

1.1、查询 API 演示

1.1.1、查询基本框架

通过 matchAll 查询所有内容,演示基本 API 操作。

代码示例:

@Testpublic void testMatchAll() throws IOException {SearchRequest request = new SearchRequest("hotel");request.source().query(QueryBuilders.matchAllQuery());SearchResponse response = client.search(request, R.class);}

然后,分析响应结果:

  • 获取匹配数据
  • 处理返回结果
  • 针对不同场景进行相应处理

1.1.2、字段匹配优化

灵活定义查询条件,实现精准匹配。

代码示例:

@Testpublic void testMatch() throws IOException {SearchRequest request = new SearchRequest("restaurant");request.source().query(QueryBuilders.matchQuery("name", "cafe"));SearchResponse response = client.search(request, R.class);}

内部机制会自动处理:

  • 条件限制
  • 值判断
  • 结果过滤

1.1.3、高级查询功能

支持返回字段限制和排序,提升数据处理效率。

代码示例:

@Testpublic void testHighlight() throws IOException {SearchRequest request = new SearchRequest("summary");request.source().query(QueryBuilders.highlightQuery("abstract", 2));SearchResponse response = client.search(request, R.class);}

实现高级功能:

  • 字段高亮
  • 结果排序
  • 自定义返回字段

1.1.4、事务处理

支持事务操作,确保数据一致性。

代码示例:

@Testpublic void testTransaction() throws IOException {SearchRequest request = new SearchRequest("transaction");request.source().query(QueryBuildersôleBuildQuery());SearchResponse response = client.search(request, R.class);}

关键点:

  • 事务控制流程
  • 数据回滚机制
  • 并发处理
  • 错误恢复

1.1.5、性能优化

通过分页处理减少服务器压力。

代码示例:

@Testpublic void testPaging() throws IOException {SearchRequest request = new SearchRequest("page");request.source().query(QueryBuilders.pagingQuery(10));SearchResponse response = client.search(request, R.class);}

优化措施:

  • 分页参数设置
  • 请求量限制
  • 内存管理
  • 并发控制

1.1.6、高级操作

灵活配置返回结果格式,满足定制需求。

代码示例:

@Testpublic void testHighLevel() throws IOException {SearchRequest request = new SearchRequest("highLevel");request.source().query(QueryBuilders.textQuery("fullText", "搜索引擎"));SearchResponse response = client.search(request, R.class);}

核心功能:

  • 自定义返回结构
  • 搜索语法扩展
  • 结果转换
  • 数据处理
上一篇:ElasticSearch - 基于 “黑马旅游” 案例,实现搜索框、分页、条件过滤、附近酒店、广告置顶功能
下一篇:ElasticSearch - 基于 JavaRestClient 操作索引库和文档

发表评论

最新留言

表示我来过!
[***.240.166.169]2025年04月21日 21时28分30秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

Python&aconda系列:conda踩坑记录2.UnsatisfiableError: The following specifications were found to be incompa 2023-01-23
Python&aconda系列:Jupyter Notebook快速上手、深度学习库PyTorch安装 2023-01-23
Python&aconda系列:(W&L)Conda使用faiss-gpu报错及解决办法、安装numpy的坑、cmd执行Python脚本找不到第三方库、安装tensorflow-gpu时遇到的from 2023-01-23
python&anconda 系列:Pycharm在debug问题的N种解决方案(一般程序、web方向、人工智能方向) 2023-01-23
python&anconda系列(亲测有效):tensorflow AttributeError: ‘str’ object has no attribute ‘decode’ 2023-01-23
python&anconda系列:tf.keras.backend.get_session()和keras.backend.get_会话()返回不同的会话对象(待解答) 2023-01-23
"WARNING: Increasing RAM size to 1GB" and "Cannot set up guest memory 'xxx.ram': Invalid argument". 2023-01-23
#if 0 #elif 1 #else #endif 用法 2023-01-23
#include <gdiplus.h>出错 2023-01-23
$ajax({}).done 和 $ajax({}) success 区别 2023-01-23
'ascii' codec can't encode characters in position 0-4: ordinal not in range(128) 2023-01-23
(反射+内省机制的运用)处理jdbc的结果集 2023-01-23
(反射+内省机制的运用)简单模拟spring IoC容器的操作 2023-01-23
(转)SQLServer全局变量 2023-01-23
(转)tomcat7.0 manager app和host manager web管理 2023-01-23
(转)【英雄会即时报道】五大CTO畅谈软件公司如何招聘技术人才 2023-01-23
(转)使用公用表表达式的递归查询(SQLSERVER2005) 2023-01-23
(转)在CListView列表视图中添加右键菜单的方法 2023-01-23
(转)考虑错误情况 2023-01-23
++b&&a--运算结果解析 2023-01-23