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

news2024/11/29 11:44:39

12.7 DSL查询语法

查询的基本语法

  
  GET /indexName/_search
  {
      "query": {
          "查询类型": {
              "查询条件": "条件值"
          }
      }
  }

查询所有

  
  GET /hotel/_search
  {
    "query": {
      "match_all": {}
    }
  }
12.7.1 全文检索查询

全文检索查询,会对用户搜索内容进行分词,常用于搜索框搜索

match查询,全文检索查询的一种,会对用户输入内容进行分词,然后去倒排索引库检索

  
  # match查询
  GET /hotel/_search
  {
    "query": {
      "match": {
        "all": "外滩如家"
      }
    }
  }

multi_match: 允许同时查询多个字段,查询字段越多,性能越差

  
  # multi_match查询
  GET /hotel/_search
  {
    "query": {
      "multi_match": {
        "query": "外滩如家",
        "fields": ["brand","name","business"]
      }
    }
  }
12.7.2 精确查询

一般是查找keyword 数值,日期,boolean类型,你不会对搜索条件分词

term: 根据词条精确查询

  
  # 精确查询
  GET /hotel/_search
  {
    "query": {
      "term": {
        "city": {
          "value": "上海"
        }
      }
    }
  }

range: 根据值的范围查询:

  
  # 范围查询
  GET /hotel/_search
  {
    "query": {
      "range": {
        "price": {
          "gte": 100,
          "lte": 300
        }
      }
    }
  }

12.7.3 地理查询

geo_bounding_box查询 查询的是给定的两点形成的矩形区域内满足要求的文档

geo_distance 查询的是到指定中心点小于某个距离的文档值

  
  # 地理查询geo_distance
  GET /hotel/_search
  {
    "query": {
      "geo_distance": {
        "distance": "15km",
        "location": "31.21 , 121.5"
      }
    }
  }
12.7.4 复合查询
12.7.4.1 Function Score 查询

function score : 相关性算分查询,控制文档排名

例 : 给如家品牌的酒店排名考前一点

  
  GET /hotel/_search
  {
    "query": {
      "function_score": {
        "query": {
          "match": {
            "all": "外滩"
          }
        },
        "functions": [
          {
            "filter": {
              "term": {
                "brand": "如家"
              }
            },
            "weight": 10
          }
        ],
        "boost_mode": "sum" 
      }
    }
  }

12.7.4.2 Boolean查询

布尔查询是一个或多个查询子句的集合, 子查询的组合方式有:

must : 必须匹配每个子选项 类似”与“

should : 选择性匹配 类似”或“

must_not: 必须不匹配 ,不参与算分 类似”非“

filter: 必须匹配, 不参与算分

例1:查询上海的皇冠假日或华美达酒店并且价格在500以上,并且得分不低于45分

  
  GET /hotel/_search
  {
    "query": {
      "bool": {
        
        "must": [
          {"term": {"city": "上海"}}
        ],
        
        "should": [
          {"term": {"brand": "皇冠假日"}},
          {"term": {"brand": "华美达"}}
        ],
        
         "must_not": [
          {"range": {"price": {"lte": 500} }}
        ],
        
        "filter": [
          {"range": {"score": {"gte": 45}}}
        ]
        
      }
    }
  }

例2: 查询名字包含如家 价格不高于400 坐标在31.21,121.5周围10km的酒店

  
  GET /hotel/_search
  {
    "query": {
      "bool": {
        
        "must": [
          {
            "match": {
              "brand": "如家"
            }
          }
        ],
        
        "must_not": [
          {
            "range": {"price": {"gt": 400}}
          }
        ],
        
        "filter": [
          {
            "geo_distance": {
              "distance": "10km",
              "location": {"lat": 31.21,"lon": 121.5}
            }
          }
        ]
        
      }
    }
  }
12.7.5 搜索结果处理
12.7.5.1 排序

默认根据先关度算分来排序,可以自定义: keyword类型,数值类型,地理坐标类型,日期类型

普通字段:

  
  ​
  GET /hotel/_search
  {
    "query": {
      "match_all": {}
    },
    
    "sort": [
      {
        "FIELD": "desc"  
      }
    ]
  }

地理位置距离排序:

  
  GET /hotel/_search
  {
      "query":{
          "match_all": {}
      },
    
      "sort": [
          {
              "geo_distance": {
              "FIELD": "经度,纬度",
              "order": "asc",
              "unit": "km"
              }
          }
      ]
  }

例1: 按用户评价排序酒店,评价相同的按价格排序

  
  GET /hotel/_search
  {
    "query": {
      "match_all": {}
    },
    
    "sort": [
      {
        "score": "desc"
      },
      
      {
        "price": "asc"
      }
      
    ]
  }

例2: 实现对酒店数据按自己的位置距离进行升序排序

  
  ​
  GET /hotel/_search
  {
    "query": {
      "match_all": {}
    },
    
    "sort": [
      {
        "_geo_distance": {
          "location": {
            "lat": 31.034661,
            "lon": 121.612282
          },
          "order": "asc",
          "unit": "km"
        }
      }
    ]
  }
12.7.5.2 分页
  
  # 分页查询
  GET /hotel/_search
  {
    "query": {
      "match_all": {}
    },
    
    "sort": [
      {
        "price": "asc"
      }
    ],
    
    "from": 10,      // 从第几条开始
    "size": 10        // 每页多少条     from+size不能超过10000
  }

12.7.5.3 高亮
  
  # 高亮查询  默认情况下  ES搜索字段必须与高亮字段一致
  GET /hotel/_search
  {
    "query": {
      "match": {
        "all": "如家"
      }
    },
    
    "highlight": {
      "fields": {
        "name": {
          "require_field_match": "false",     // 取消默认  改为不用与搜索字段一致
           "pre_tags": "<em>",
            "post_tags": "</em>"
        }
      }
    }
  }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1815604.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OZON云仓靠谱吗,OZON云仓垫资提货模式

在电商飞速发展的今天&#xff0c;物流仓储成为了支撑整个电商生态的重要基石。OZON云仓作为市场上新兴的仓储物流服务提供商&#xff0c;凭借其先进的技术和灵活的服务模式&#xff0c;受到了不少电商卖家和消费者的关注。但随之而来的是一系列疑问&#xff1a;OZON云仓靠谱吗…

【八股系列】react里组件通信有几种方式,分别怎样进行通信?

文章目录 1. props传递&#xff08;父向子通信&#xff09;:2. 回调函数作为props&#xff08;子向父通信&#xff09;:3. Context API&#xff1a;4. Redux或MobX等状态管理库&#xff1a;4.1 Redux使用示例 5. refs&#xff1a; 1. props传递&#xff08;父向子通信&#xff…

社区新标准发布!龙蜥社区标准化 SIG MeetUp 圆满结束

5 月 31 日&#xff0c;「龙蜥社区“走进系列”」第 9 期之走进阿里云于北京圆满结束。来自阿里云、浪潮信息、红旗软件、中兴通讯|中兴新支点、中科曙光、中科方德、统信软件、麒麟软件、万里红、普华基础软件、飞腾信息、凝思、申威、新华三等公司的 30 余位专家出席会议。会…

C#开源软件:OneNote组件oneMore轻松打造自己的公众号编辑器

OneMore是一款为Microsoft OneNote设计的插件&#xff0c;它提供了许多扩展功能来增强OneNote的使用体验。 插件功能概述&#xff1a; OneMore插件拥有多达一百多个扩展功能&#xff0c;这些功能覆盖了笔记编辑、搜索、导出等多个方面&#xff0c;为用户提供了更加便捷和高效的…

人工智能超万卡集群的设计架构解读

超万卡集群的核心设计原则和总体架构 超万卡集群建设正起步&#xff0c;现主要依赖英伟达GPU及其配套设备。英伟达GPU在大模型训练中优势显著。国产AI芯片虽在政策与应用驱动下取得进步&#xff0c;但整体性能与生态建设仍有不足。构建一个基于国产生态、技术领先的超万卡集群&…

Flutter-使用MethodChannel 实现与iOS交互

前言 使用 MethodChannel 在 Flutter 与原生 Android 和 iOS 之间进行通信&#xff0c;可以让你在 Flutter 应用中调用设备的原生功能。 基础概念 MethodChannel&#xff1a;Flutter 提供的通信机制&#xff0c;允许消息以方法调用的形式在 Flutter 与原生代码之间传递。方法…

k8s学习--kubernetes服务自动伸缩之水平伸缩(pod副本伸缩)HPA详细解释与案例应用

文章目录 前言HPA简介简单理解详细解释HPA 的工作原理监控系统负载模式HPA 的优势使用 HPA 的注意事项应用类型 应用环境1.metircs-server部署2.HPA演示示例&#xff08;1&#xff09;部署一个服务&#xff08;2&#xff09;创建HPA对象&#xff08;3&#xff09;执行压测 前言…

【免费Web系列】大家好 ,今天是Web课程的第十九天点赞收藏关注,持续更新作品 !

1. Vue工程化 前面我们在介绍Vue的时候&#xff0c;我们讲到Vue是一款用于构建用户界面的渐进式JavaScript框架 。&#xff08;官方&#xff1a;Vue.js - 渐进式 JavaScript 框架 | Vue.js&#xff09; 那在前面的课程中&#xff0c;我们已经学习了Vue的基本语法、表达式、指令…

Etcd Raft架构设计和源码剖析2:数据流

Etcd Raft架构设计和源码剖析2&#xff1a;数据流 | Go语言充电站 前言 之前看到一幅描述etcd raft的流程图&#xff0c;感觉非常直观&#xff0c;但和自己看源码的又有些不同&#xff0c;所以自己模仿着画了一下&#xff0c;再介绍一下。 下图从左到右依次分为4个部分&…

探索在线问诊系统的安全性与隐私保护

随着远程医疗的普及&#xff0c;在线问诊系统成为医疗服务的重要组成部分。然而&#xff0c;随着医疗数据的在线传输和存储&#xff0c;患者的隐私保护和数据安全面临巨大挑战。本文将探讨在线问诊系统的安全性与隐私保护&#xff0c;介绍常见的安全措施和技术实现&#xff0c;…

【问题记录】VMware 17.5.1下载VMware tools失败报错的解决方法

一&#xff0c;问题现象 Ubuntu可以上网&#xff0c;但是下载VMware tools失败&#xff0c;报错提示&#xff1a;“连接到更新服务器时发生证书错误。请检查您的Internet设置或联系您的系统管理员。” 下载安装VMware tools&#xff1a; 报错提示&#xff1a; 二&#xff0…

品质卓越为你打造App UI 风格

品质卓越为你打造App UI 风格

网络安全到底是什么?一篇概念详解(附学习资料)

一、什么是网络安全&#xff1f;&#xff08;文末有资料&#xff09; “网络安全是指网络系统的硬件、软件及其系统中的数据受到保护&#xff0c;不因偶然的或者恶意的原因而遭受到破坏、更改、泄露、系统连续可靠正常地运行&#xff0c;网络服务不中断。” 说白了网络安全就…

【精品方案】某咨询公司的大数据解决方案(32页PPT),干货满满!

引言&#xff1a;随着信息技术的快速发展和大数据时代的到来&#xff0c;企业面临着海量数据的挑战与机遇。如何高效、准确地收集、处理、分析和利用这些数据&#xff0c;成为了企业提升业务效率和决策质量的关键。本咨询公司结合多年的行业经验和先进的大数据技术&#xff0c;…

Electron+Vue开源软件:洛雪音乐助手V2.8畅享海量免费歌曲

洛雪音乐助手是一款功能全面且完全免费的开源音乐软件&#xff0c;支持在Windows、Android和iOS平台上使用。 平台支持&#xff1a; 桌面版&#xff1a;采用Electron Vue技术栈开发&#xff0c;支持Windows 7及以上版本、Mac OS和Linux&#xff0c;具有广泛的用户群体覆盖。 …

spring boot3登录开发-邮箱登录/注册接口实现

⛰️个人主页: 蒾酒 &#x1f525;系列专栏&#xff1a;《spring boot实战》 &#x1f30a;山高路远&#xff0c;行路漫漫&#xff0c;终有归途 目录 写在前面 上文衔接 内容简介 功能分析 所需依赖 邮箱验证登录/注册实现 1.创建交互对象 2.登录注册业务逻辑实…

绿洲生态【OAS】爱护环境--保护地球

绿洲生态(OAS)&#xff0c;是由新加坡绿洲基金会联合世界绿色环保组织联合发行OAS通证。总发行量9亿&#xff0c;致力于形成辐射全球的“绿洲生态(OAS)”探索环保应用流通通证&#xff08;OAS&#xff09;生态体系。 绿洲生态通过&#xff08;OAS&#xff09;分配来提高玩家的参…

Chromium源码阅读:深入理解Mojo框架的设计思想,并掌握其基本用法(2)

我们继续分析Chromium的Mojo模块。 Dispatcher Dispatcher 是 Mojo IPC 系统中的一个关键概念。它是一个虚基类类&#xff08;或接口&#xff09;&#xff0c;用于实现与特定 MojoHandle 相关联的 Mojo 核心 API 调用。在 Mojo 系统中&#xff0c;应用程序通过这些 API 与各种…

人工智能在肿瘤细胞分类中的应用|顶刊速递·24-06-06

小罗碎碎念 推文主题——人工智能在肿瘤细胞分类中的应用。 重点关注 临床方向的同学/老师建议重点关注第四篇&第六篇文章&#xff0c;最近DNA甲基化和蛋白组学与AI的结合&#xff0c;在顶刊中出现的频率很高&#xff0c;建议思考一下能否和自己的课题结合。 工科的同学重…

第6章 应用层

考纲内容 &#xff08;一&#xff09;网络应用模型 客户/服务器模型&#xff1b;P2P模型 &#xff08;二&#xff09;域名系统(DNS) 层次域名空间&#xff1b;域名服务器&#xff1b;域名解析过程 &#xff08;三&#xff09;文件传输协议(FTP) …