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

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>"
        }
      }
    }
  }

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Vue3-Element-Admin 动态路由】涉及到的配置

Vue3-Element-Admin 动态路由 涉及到的配置 0. Vue3-Element-Admin 项目地址1. router/index.ts2. Mock接口模拟数据3. store/permission4. api/menu5. plugins/permission 这篇文章讲的主要是 Vue3-Element-Admin 差不多内置的动态路由配置 (根据后端接口渲染) 先把开发环境&a…

Hive on Spark版本兼容性

Hive on Spark仅在特定版本的Spark上进行测试&#xff0c;因此给定版本的Hive只能保证与特定版本的Spark一起工作。其他版本的Spark可能与给定版本的Hive一起工作&#xff0c;但不能保证。以下是Hive版本及其对应的Spark版本列表&#xff1a; 详情参考官方文档&#xff1a;http…

11.Spring AOP

文章目录 1.什么是 Spring AOP&#xff1f;2.为什要用 AOP&#xff1f;3.Spring AOP 应该怎么学习呢&#xff1f;3.1 AOP 组成3.1.1 切⾯&#xff08;Aspect&#xff09; 切点 通知3.1.2 连接点&#xff08;Join Point&#xff09;3.1.3 切点&#xff08;Pointcut&#xff09;…

53.ReentrantLock原理

ReentrantLock使用 ReentrantLock 实现了Lock接口&#xff0c; 内置了Sync同步器继承了AbstractQueuedSynchronizer。 Sync是抽象类&#xff0c;有两个实现NonfairSync非公平&#xff0c;FairSync公平。 所以ReentrantLock有公平锁和非公平锁。默认是非公平锁。 public sta…

[数据集][目标检测]足球场足球运动员身份识别足球裁判员数据集VOC+YOLO格式312张4类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;312 标注数量(xml文件个数)&#xff1a;312 标注数量(txt文件个数)&#xff1a;312 标注类别…

Nvidia/算能 +FPGA+AI大算力边缘计算盒子:电力巡检智能机器人

聚焦数字经济与双碳经济赛道&#xff0c;专注于提供集中式新能源场站与分布式综合能源数智化整体解决方案&#xff0c;坚持以场站数字化、综合能源数字化双轮驱动发展。依靠专业化人才队伍与丰富的实证基地研究经验&#xff0c;打造成熟、先进的数智新能源研发平台。 在集中式新…

linux本地搭建apt源

使用apt-mirror搭建 1.安装 apt-get install apt-mirror2.编辑配置文件 vi /etc/apt/mirror.list修改下载目录 set_base_path 后面改为下载镜像的目录&#xff0c;同时删除前面#号 添加同步的源&#xff0c;建议用国内的&#xff0c;速度快&#xff0c;我这里用的阿里云的镜…

Leetcode 力扣109. 有序链表转换二叉搜索树 (抖音号:708231408)

给定一个单链表的头节点 head &#xff0c;其中的元素 按升序排序 &#xff0c;将其转换为 平衡 二叉搜索树。 示例 1: 输入: head [-10,-3,0,5,9] 输出: [0,-3,9,-10,null,5] 解释: 一个可能的答案是[0&#xff0c;-3,9&#xff0c;-10,null,5]&#xff0c;它表示所示的高…

每日一题——Python实现PAT甲级1015 Reversible Primes(举一反三+思想解读+逐步优化)

一个认为一切根源都是“自己不够强”的INTJ 个人主页&#xff1a;用哲学编程-CSDN博客专栏&#xff1a;每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 目录 我的写法 is_prime函数分析&#xff1a; decimal_to_base函数分析&#xff1a; 主循…

无头+单向+非循环链表的实现

这里写目录标题 1. 链表1.1 链表的概念及结构1.2 链表的分类 2. 接口实现3. 链表的实现3.1 打印链表3.2 头插3.3 尾插3.4 头删3.5 尾删3.6 单链表查找3.7 在pos之前插入3.8 在pos之后插入3.9 删除pos位置的值3.10 删除pos位置之后的值3.11 链表的释放3.12 动态申请一个节点 4. …

STM32F103C8T6 HAL库串口重定向

前言&#xff1a; 这里仅用做个人记录&#xff0c;实现USART1串口通信&#xff0c;并通过printf重定向输出“串口打印测试” 正文开始&#xff1a; 首先在STM32CubeMX上对串口进行配置&#xff0c;其实方法也非常简单。 按照箭头顺序&#xff0c;先点击Connectivity找到USART1…

30分钟吃掉pytorch转onnx及推理

pytorch模型线上部署最常见的方式是转换成onnx然后再转成tensorRT 在cuda上进行部署推理。 本文介绍将pytorch模型转换成onnx模型并进行推理的方法。 #!pip install onnx #!pip install onnxruntime #!pip install torchvision 公众号算法美食屋后台回复关键词&#xff1a;源码…

jmeter -n -t 使用非GUI模式运行脚本说明

命令模式下执行jmx文件 jmeter -n -t fatie.jmx -l results\t4.jtl -e -o results\h1 表示以命令行模式运行当前目录下的脚本fatie.jmx,将结果存入当前目录下的results\t1.jtl,并且生成html格式的报告&#xff0c;写入文件夹results\h1。 说明&#xff1a;生成结果的文件夹r…

《精通ChatGPT:从入门到大师的Prompt指南》第10章:案例分析

第10章&#xff1a;案例分析 10.1 优秀Prompt案例解析 在深入探讨如何精通ChatGPT的使用之前&#xff0c;理解并分析一些优秀的Prompt案例是至关重要的。这不仅有助于更好地掌握Prompt的构建技巧&#xff0c;还能提高与AI交互的效果。在这一节中&#xff0c;我们将详细解析一…

实用的 C 盘搬家软件

一、简介 1、一款专门用于 Windows 系统的文件夹移动工具&#xff0c;它允许用户将程序或游戏的安装文件夹从一台驱动器移动到另一台驱动器&#xff0c;或者同一个驱动器内的不同路径&#xff0c;而无需重新安装或破坏现有的程序安装。 二、下载 1、下载地址&#xff1a; 官网链…

1-Maven-settings配置

1-Maven-settings配置 整理下Maven工具的使用。 【本地仓库、私服、镜像仓库、远程仓库、中央仓库】 本文基于阅读其他博客和对公司Maven配置的学习整理出来的。希望通过本此学习能对Maven有个整体性的掌控。 顺序&#xff1a;profile.repository > pom文件中的repository &…

关于焊点检测(SJ-BIST)模块实现

关于焊点检测&#xff08;SJ-BIST&#xff09;模块实现 语言 &#xff1a;Verilg HDL 、VHDL EDA工具&#xff1a;ISE、Vivado、Quartus II 关于焊点检测&#xff08;SJ-BIST&#xff09;模块实现一、引言二、焊点检测功能的实现方法&#xff08;1&#xff09; 输入接口&#x…

SpringBoot+Vue网上超市(前后端分离)

技术栈 JavaSpringBootMavenMySQLMyBatisVueShiroElement-UI 角色对应功能 用户管理员 功能截图

C基础与SDK调试方法

REVIEW 上次学习了一下软件使用流程zynq PS点灯-CSDN博客 本次学习一下C编程基础与调试方法 1. 硬件编程原理 小梅哥视频链接&#xff1a; 07_Xilinx嵌入式裸机硬件编程原理_哔哩哔哩_bilibili 对应的课程笔记&#xff1a;【zynq课程笔记】【裸机】【第7课 】【硬件编程原理…

eNSP学习——配置RIP路由附加度量值

目录 主要命令 原理概述 实验目的 实验内容 实验拓扑 实验编址 实验步骤 1、基本配置 2、搭建RIP网络 3、配置RIP Metricin 4、配置RIP Metricout 需要eNSP各种配置命令的点击链接自取&#xff1a;华为&#xff45;NSP各种设备配置命令大全PDF版_ensp配置命令大全资…