山东大学软件学院项目实训-创新实训-基于大模型的旅游平台(三十二)- 微服务(12)

本文主要是介绍山东大学软件学院项目实训-创新实训-基于大模型的旅游平台(三十二)- 微服务(12),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

12.8 RestClient查询文档

12.8.1 快速入门

12.8.2 match, term,bool,range查询

12.8.3 排序和分页

12.8.4 高亮


12.8 RestClient查询文档

12.8.1 快速入门
  @Testvoid testMatchALL() throws IOException {// 1. 准备requestSearchRequest request = new SearchRequest("hotel");// 2. 准备DSLrequest.source().query(QueryBuilders.matchAllQuery());// 3. 发送请求SearchResponse response = client.search(request, RequestOptions.DEFAULT);​System.out.println(response);}

结果解析:

  @Testvoid testMatchALL() throws IOException {// 1. 准备requestSearchRequest request = new SearchRequest("hotel");// 2. 准备DSLrequest.source().query(QueryBuilders.matchAllQuery());// 3. 发送请求SearchResponse response = client.search(request, RequestOptions.DEFAULT);​// 4. 结果解析SearchHits searchHits = response.getHits();// 4.1 获取总条数long total = searchHits.getTotalHits().value;System.out.println(total);// 4.2 获取文档数组SearchHit[] hits = searchHits.getHits();for (SearchHit hit : hits) {// 取文档sourceString json = hit.getSourceAsString();// 反序列化HotelDoc hotelDoc = JSON.parseObject(json, HotelDoc.class);System.out.println(hotelDoc);}}
12.8.2 match, term,bool,range查询

把结果解析的代码抽取成方法

  private void HandleResponse(SearchResponse response){// 4. 结果解析SearchHits searchHits = response.getHits();// 4.1 获取总条数long total = searchHits.getTotalHits().value;System.out.println(total);// 4.2 文档数组SearchHit[] hits = searchHits.getHits();for (SearchHit hit : hits) {// 取文档sourceString json = hit.getSourceAsString();// 反序列化HotelDoc hotelDoc = JSON.parseObject(json, HotelDoc.class);System.out.println(hotelDoc);}}

match查询

  @Testvoid testMatch() throws IOException {// 1. 准备requestSearchRequest request = new SearchRequest("hotel");// 2. 准备DSLrequest.source().query(QueryBuilders.matchQuery("all","如家"));// 3. 发送请求SearchResponse response = client.search(request, RequestOptions.DEFAULT);HandleResponse(response);​}

bool查询:

  @Testvoid testBool() throws IOException {// 1. 准备requestSearchRequest request = new SearchRequest("hotel");// 2. 准备DSL// 2.1 准备BooleanQueryBoolQueryBuilder boolQuery = QueryBuilders.boolQuery();// 2.2 添加termboolQuery.must(QueryBuilders.termQuery("city","上海"));// 2.3 添加rangeboolQuery.filter(QueryBuilders.rangeQuery("price").lte(250));​request.source().query(boolQuery);​// 3. 发送请求SearchResponse response = client.search(request, RequestOptions.DEFAULT);HandleResponse(response);​}

12.8.3 排序和分页

  @Testvoid testPageAndSort() throws IOException {// 1. 准备requestSearchRequest request = new SearchRequest("hotel");// 2. 准备DSL// 2.1 queryrequest.source().query(QueryBuilders.matchAllQuery());// 2.2 排序sortrequest.source().sort("price", SortOrder.ASC);// 2.3 分页  from sizerequest.source().from(56).size(10);    // 第56条开始展示10条// 3. 发送请求SearchResponse response = client.search(request, RequestOptions.DEFAULT);HandleResponse(response);}
12.8.4 高亮
  @Testvoid testHighLight() throws IOException {// 1. 准备requestSearchRequest request = new SearchRequest("hotel");// 2. 准备DSL// 2.1 queryrequest.source().query(QueryBuilders.matchQuery("all","如家"));// 2.2 高亮request.source().highlighter(new HighlightBuilder().field("name").requireFieldMatch(false));​// 3. 发送请求SearchResponse response = client.search(request, RequestOptions.DEFAULT);HandleHighLightResponse(response);}

高亮结果解析 :

  private void HandleHighLightResponse(SearchResponse response){// 4. 结果解析SearchHits searchHits = response.getHits();// 4.1 获取总条数long total = searchHits.getTotalHits().value;System.out.println(total);// 4.2 文档数组SearchHit[] hits = searchHits.getHits();for (SearchHit hit : hits) {// 取文档sourceString json = hit.getSourceAsString();// 反序列化HotelDoc hotelDoc = JSON.parseObject(json, HotelDoc.class);// 获取高亮结果Map<String, HighlightField> highlightFields = hit.getHighlightFields();if(!CollectionUtils.isEmpty(highlightFields)){// 根据名字获取高亮结果HighlightField highlightField = highlightFields.get("name");if(highlightField != null){// 获取高亮值String name = highlightField.getFragments()[0].string();// 覆盖非高亮结果hotelDoc.setName(name);}}​System.out.println(hotelDoc);}}

这篇关于山东大学软件学院项目实训-创新实训-基于大模型的旅游平台(三十二)- 微服务(12)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1056310

相关文章

Java的IO模型、Netty原理解析

《Java的IO模型、Netty原理解析》Java的I/O是以流的方式进行数据输入输出的,Java的类库涉及很多领域的IO内容:标准的输入输出,文件的操作、网络上的数据传输流、字符串流、对象流等,这篇... 目录1.什么是IO2.同步与异步、阻塞与非阻塞3.三种IO模型BIO(blocking I/O)NI

一文教你如何将maven项目转成web项目

《一文教你如何将maven项目转成web项目》在软件开发过程中,有时我们需要将一个普通的Maven项目转换为Web项目,以便能够部署到Web容器中运行,本文将详细介绍如何通过简单的步骤完成这一转换过程... 目录准备工作步骤一:修改​​pom.XML​​1.1 添加​​packaging​​标签1.2 添加

tomcat多实例部署的项目实践

《tomcat多实例部署的项目实践》Tomcat多实例是指在一台设备上运行多个Tomcat服务,这些Tomcat相互独立,本文主要介绍了tomcat多实例部署的项目实践,具有一定的参考价值,感兴趣的可... 目录1.创建项目目录,测试文China编程件2js.创建实例的安装目录3.准备实例的配置文件4.编辑实例的

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

springboot集成Deepseek4j的项目实践

《springboot集成Deepseek4j的项目实践》本文主要介绍了springboot集成Deepseek4j的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录Deepseek4j快速开始Maven 依js赖基础配置基础使用示例1. 流式返回示例2. 进阶

Linux上设置Ollama服务配置(常用环境变量)

《Linux上设置Ollama服务配置(常用环境变量)》本文主要介绍了Linux上设置Ollama服务配置(常用环境变量),Ollama提供了多种环境变量供配置,如调试模式、模型目录等,下面就来介绍一... 目录在 linux 上设置环境变量配置 OllamPOgxSRJfa手动安装安装特定版本查看日志在

SpringBoot项目启动报错"找不到或无法加载主类"的解决方法

《SpringBoot项目启动报错找不到或无法加载主类的解决方法》在使用IntelliJIDEA开发基于SpringBoot框架的Java程序时,可能会出现找不到或无法加载主类com.example.... 目录一、问题描述二、排查过程三、解决方案一、问题描述在使用 IntelliJ IDEA 开发基于

SpringCloud之LoadBalancer负载均衡服务调用过程

《SpringCloud之LoadBalancer负载均衡服务调用过程》:本文主要介绍SpringCloud之LoadBalancer负载均衡服务调用过程,具有很好的参考价值,希望对大家有所帮助,... 目录前言一、LoadBalancer是什么?二、使用步骤1、启动consul2、客户端加入依赖3、以服务

SpringBoot项目使用MDC给日志增加唯一标识的实现步骤

《SpringBoot项目使用MDC给日志增加唯一标识的实现步骤》本文介绍了如何在SpringBoot项目中使用MDC(MappedDiagnosticContext)为日志增加唯一标识,以便于日... 目录【Java】SpringBoot项目使用MDC给日志增加唯一标识,方便日志追踪1.日志效果2.实现步

Ubuntu中Nginx虚拟主机设置的项目实践

《Ubuntu中Nginx虚拟主机设置的项目实践》通过配置虚拟主机,可以在同一台服务器上运行多个独立的网站,本文主要介绍了Ubuntu中Nginx虚拟主机设置的项目实践,具有一定的参考价值,感兴趣的可... 目录简介安装 Nginx创建虚拟主机1. 创建网站目录2. 创建默认索引文件3. 配置 Nginx4