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

二十七、RestClient查询文档

目录

一、MatchALL查询

二、Match查询

三、bool查询

四、排序和分页

五、高亮


一、MatchALL查询

    @Testvoid testMatchAll() throws IOException {
//      准备Request对象SearchRequest request = new SearchRequest("hotel");
//      准备DSLrequest.source().query(QueryBuilders.matchAllQuery());
//      发送请求SearchResponse response = client.search(request, RequestOptions.DEFAULT);
//      解析响应SearchHits searchHits = response.getHits();
//      获取总条数long value = searchHits.getTotalHits().value;System.out.println("共搜索到"+value+"条数据!");
//      获取文档数组SearchHit[] hits = searchHits.getHits();
//      遍历for (SearchHit hit : hits) {
//          获取文档sourceString json = hit.getSourceAsString();
//          反序列化HotelDoc object = JSON.parseObject(json, HotelDoc.class);System.out.println("object = " + object);}}

二、Match查询

    @Testvoid testMatch() throws IOException {
//      准备Request对象SearchRequest request = new SearchRequest("hotel");
//      准备DSLrequest.source().query(QueryBuilders.matchQuery("name","连锁"));
//      发送请求SearchResponse response = client.search(request, RequestOptions.DEFAULT);
//      解析响应SearchHits searchHits = response.getHits();
//      获取总条数long value = searchHits.getTotalHits().value;System.out.println("共搜索到"+value+"条数据!");
//      获取文档数组SearchHit[] hits = searchHits.getHits();
//      遍历for (SearchHit hit : hits) {
//          获取文档sourceString json = hit.getSourceAsString();
//          反序列化HotelDoc object = JSON.parseObject(json, HotelDoc.class);System.out.println("object = " + object);}}

三、bool查询

    @Testvoid testBool() throws IOException {
//      准备Request对象SearchRequest request = new SearchRequest("hotel");
//      准备DSLBoolQueryBuilder boolQuery = QueryBuilders.boolQuery();boolQuery.must(QueryBuilders.termQuery("city","杭州"));boolQuery.filter(QueryBuilders.rangeQuery("price").lte(250));request.source().query(boolQuery);
//      发送请求SearchResponse response = client.search(request, RequestOptions.DEFAULT);extracted(response);}

四、排序和分页

    @Testvoid testMatchAll() throws IOException {
//      准备Request对象SearchRequest request = new SearchRequest("hotel");
//      准备DSLrequest.source().query(QueryBuilders.matchAllQuery());
//      分页request.source().from(0).size(5);
//      排序request.source().sort("price", SortOrder.ASC);
//      发送请求SearchResponse response = client.search(request, RequestOptions.DEFAULT);
//      解析响应extracted(response);}

五、高亮

所有搜索DSL的构建,记住一个API    :   SearchRequest的source()方法。

高亮结果解析是参考JSON结果,逐层解析

     @Testvoid testHighLight() throws IOException {
//      准备Request对象SearchRequest request = new SearchRequest("hotel");
//      准备DSLrequest.source().query(QueryBuilders.matchQuery("name", "连锁"));request.source().highlighter(new HighlightBuilder().field("name").requireFieldMatch(false));
//      发送请求SearchResponse response = client.search(request, RequestOptions.DEFAULT);extracted(response);}   private void extracted(SearchResponse response) {
//      解析响应SearchHits searchHits = response.getHits();
//      获取总条数long value = searchHits.getTotalHits().value;System.out.println("共搜索到" + value + "条数据!");
//      获取文档数组SearchHit[] hits = searchHits.getHits();
//      遍历for (SearchHit hit : hits) {
//          获取文档sourceString json = hit.getSourceAsString();
//          反序列化HotelDoc object = JSON.parseObject(json, HotelDoc.class);
//          获取高亮结果Map<String, HighlightField> highlightFields = hit.getHighlightFields();if (!CollectionUtils.isEmpty(highlightFields)){
//              根据字段名获取高亮结果HighlightField highlightField = highlightFields.get("name");if (highlightFields != null){
//                  获取高亮值String name = highlightField.getFragments()[0].string();
//                  覆盖非高亮结果object.setName(name);}}System.out.println("object = " + object);}}

http://www.lryc.cn/news/246391.html

相关文章:

  • 百度云Ubuntu22.04
  • 解除word文档限制,快速轻松,seo优化。
  • 【音频】Glitch相关
  • 【开源】基于Vue+SpringBoot的大学生相亲网站
  • 5种主流API网关技术选型,yyds!
  • 请求pdf文件流并进行预览
  • 【Unity程序技巧】加入缓存池存储地图资源,节省资源,避免多次CG
  • 虹科Pico汽车示波器 | 汽车免拆检修 | 2016款东风悦达起亚K5车发动机怠速抖动严重、加速无力
  • 4.Spring源码解析-loadBeanDefinitions(XmlBeanDefinitionReader)
  • PHP 针对人大金仓KingbaseES自动生成数据字典
  • java选择排序和冒泡排序
  • linux反弹shell
  • Go字符串类型
  • DjiTello + YoloV5的无人机的抽烟检测
  • 数据库取多个时间字段的最大值
  • C/C++ 实现Socket交互式服务端
  • kotlin 防范竞态
  • 超分辨率重建
  • 防止恶意攻击,服务器DDoS防御软件科普
  • nint和Pattern matching介绍(C#)
  • 部署jenkins一直显示Please wait while Jenkins is getting ready to work
  • Redis性能压测、监控工具及优化方案
  • 使用NVM管理多个Nodejs版同时本支持vue2、vue3
  • 局域网的网络ip不稳定问题
  • uniapp (vue3)生成二维码
  • Android11编译第八弹:root用户密码设置
  • XML Schema中的attributeFormDefault
  • 数据结构 / 结构体字节计算
  • rancher2.6 docker版本部署
  • UE5人物残影学习(材质实现)