ES高级查询

news/2024/2/25 12:20:08/文章来源:https://blog.csdn.net/m0_62565675/article/details/135562707

        ES中提供了一种强大的检索数据方式,这种检索方式称为Query DSL,这种方式的丰富查询语法让ES检索变得更强大,更简洁。

1.常见查询

1.1查询所有[match_all]

match_all关键字:返回索引中的全部文档。

GET /products/_search
{
  "query": {
    "match_all": {}
  }

 

1.2term基于关键词查询

注意:文档信息存储是按照字段的类型去分词,以分词后的结果来存储的

1.在ES中除了text类型会分词,其余类型均不分词(如keyword、Integer、double、date、boolean),其完整的整个数据就是一个关键字/词。

2.在ES中默认使用的是标准分词器,中文是单字分词,英文是单词分词。

GET /products/_search        
{
  "query": {
    "term": {
      "description": {  #字段
        "value": "很"
      }
    }
  }

 

1.3range范围查询

GET /products/_search
{
  "query": {
    "range": {
      "price": { #字段
        "gte": 10,  #gt表示>,gte表示>=
        "lte": 20   #lt表示<,lte表示<=
      }
    }
  }

1.4prefix前缀查询

 

1.5wildcard查询

?可以匹配一个字符,而*可以匹配多个字符

 

1.6多id查询[ids]

用一组id获取多个对应的文档

GET /products/_search
{
  "query": {
    "ids": {
      "values": [1,2]
    }
  }

1.7模糊查询[fuzzy]

fuzzy关键字:用来模糊查询含有指定关键字的文档

 

注意:fuzzy模糊查询 最大模糊错误必须在0-2之间

  • 搜索关键词长度为2不允许存在模糊

  • 搜索关键词长度为3-5允许一次模糊

  • 搜索关键词长度大于5允许最大两次模糊

1.8布尔查询[bool]

bool关键字:用来组合多个条件实现复杂查询

  • must:相当于&&同时成立

  • should:相当于||成立一个就行

  • must_not:相当于!不能满足任何一个

 

2.多字段查询[multi_match]

 

注意:多字段查询时,query中的查询语句会根据fields中字段的类型先去分词之后再去查询,如果该字段不分词就会将整体作为条件进行查询。

比如先按照title来说,因为keyword类型是不分词的,所以会将"不是"整体作为title的条件去查,那肯定是查不到记录的。然后再看description,因为是text类型的,所以会分词,先分为"不"和"是",然后将这两个词分别作为description的条件去查,就能查到这一条记录。

3.默认字段分词查询[query_string]

就是先将查询条件按照设定的默认字段类型去分词,分完词后,作为字段的条件去查询。

因为title的类型keyword不分词,所以会直接将"库迪"作为条件去title中查询,那肯定是查询不到的。  

  因为description的类型是text所以要分词,先将查询条件"我是很"分为"我"、"是"、"很"。在分别作为条件去description中查询,可以查询出来两条结果。

4.高亮显示highlight

注意:高亮只能用于可以分词的字段,即text。

GET /products/_search
{
  "query": {
    "query_string": {
      "default_field": "description",
      "query": "我是很"
    }
  },
  "highlight": {
    "pre_tags": ["<span style='color:red;'>"],  #开始标签
    "post_tags": ["</span>"],          #结束标签
    "require_field_match": "false",  #开启多字段高亮
    "fields": {
      "*":{}
      }
    }

 

5.返回条数等待[size]

size:指定查询结果中返回指定条数。默认返回值10条。

GET /products/_search
{
    "query":{
        "match_all":{}
    },
    "size":5

6.分页查询[from]

from:用来指定起始返回位置,和size关键字连用可实现分页效果。

GET /products/_search
{
    "query":{
        "match_all":{}
    },
    "from":0
    "size":5,

7.指定字段排序[sort]

GET /products/_search
{
    "query":{
        "match_all":{}
    },
    "sort":[
      {
        "price":{
            "order":"desc"
        }
      }
    ]

8.返回指定字段

_socre:是一个数组,在数组中用来指定展示哪些字段。

GET /products/_search
{
    "query":{
        "match_all":{}
    },
    "_source":["title","description"]

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

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

相关文章

Redis-redis.conf配置文件中的RDB与AOF持久化方式的详解与区别

RDB&#xff08;Redis Database&#xff09; RDB是Redis的默认持久化方式&#xff0c;它将内存中的数据以二进制格式写入磁盘&#xff0c;形成一个快照。RDB持久化有以下几个重要的配置选项&#xff1a; save&#xff1a;指定了保存RDB的策略&#xff0c;默认的配置是每900秒&…

域名群站开源系统分享开源域名授权系统

一、需要自己安装PHP和MYSQL服务器环境。 二、务必设置伪静态规则&#xff0c;否则将无法访问文章栏目页面。 三、启用伪静态功能&#xff0c;请在站点设置中选择使用thinkphp的伪静态规则。 四、在域名的根目录下找到”data/config.php”文件&#xff0c;填入数据库的账号和…

使用WAF防御网络上的隐蔽威胁之CSRF攻击

在网络安全领域&#xff0c;除了常见的XSS&#xff08;跨站脚本&#xff09;攻击外&#xff0c;CSRF&#xff08;跨站请求伪造&#xff09;攻击也是一种常见且危险的威胁。这种攻击利用用户已经验证的身份在没有用户知情的情况下&#xff0c;执行非授权的操作。了解CSRF攻击的机…

无需主网结算来进行 BTC 交易?Tectum 提出了新的解决方案

撰文&#xff1a;Tom&#xff0c;CryptoBooster 下载TechubNews APP&#xff0c;探索Web3的无限可能&#xff01;掌握最新动态&#xff0c;发现更多相关资讯&#xff0c;与行业领袖共同探索未来趋势。立即下载&#xff0c;开启您的Web3之旅&#xff01; 区块链发展至今&#x…

解决防爬虫机制方法(二)

最近为了完成学校的大数据的作业&#xff0c;老师要我们爬一个的网站&#xff0c;里面有还算不错的防爬机制&#xff0c;忙活了几天&#xff0c;总结出一些常见的防爬机制的应对方法&#xff0c;方法均来自个人实战总结&#xff0c;非专业爬虫角度分析 承接上一次讲的方法解决…

MybatisPlus-删除

目录 1.数据库建表 2.项目 ---就是更新del_flag字段为2 (1)pom.xml (2)Application (3)applicatiom.yml (4)entity (5)mapper (6)service (7)service目录下的impl目录 (8)common (9)enums (10)config (11)controller postman测试 3.彻底删除数据库记录 (11&…

Shell脚本同时调用#!/bin/bash和#!/usr/bin/expect

如果你想在一个脚本中同时使用bash和expect&#xff0c;你可以将expect部分嵌入到bash脚本中。以下是一个示例&#xff1a; #!/bin/bash# 设置MySQL服务器地址、端口、用户名和密码 MYSQL_HOST"localhost" MYSQL_PORT"3306" MYSQL_USER"your_usernam…

windows 环境下使用脚本备份 oracle 数据库数据

文章目录 前言一、修改点1.设置用户名、密码和要备份的数据库2.创建备份目录3.详情&#xff1a;Bak.bat 文件 二、定时任务自启动bat文件总结 前言 当我们的系统部署在 windows 上时&#xff0c;且使用的数据库为 oracle 时&#xff0c;需要将数据库的数据定时备份。 提示&…

解决Spring Boot跨域问题(配置JAVA类)

什么是跨域问题 跨域问题指的是不同端口之间&#xff0c;使用 ajax 无法相互调用的问题。跨域问题本质是浏览器的一种保护机制&#xff0c;它是为了保证用户的安全&#xff0c;防止恶意网站窃取数据。 比如前端用的端口号为8081&#xff0c;后端用的端口号为8080&#xff0c;后…

在pycharm远程连接树莓派遇到的No files or folders found to process处理办法

在PyCharm中解决"No files or folders found to process"错误的另一个方法是通过Deployment中的Configuration选项。在PyCharm中&#xff0c;找到Tool并选择Deployment&#xff0c;然后点击Configuration。 在设置路径的过程中需要注意目标目录是相对的 在中 会识…

AI大模型预先学习笔记三:使用Assistants API快速搭建领域专属AI助手

文章目录 一、什么是AssistantsAPI二、为什么用AssistantsAPI三、Demo展示及能力介绍四、Demo框架及具体实现五、从Demo到实际应用的Gap 一、什么是AssistantsAPI 介绍 OpenAI的第一手发布者API文档&#xff0c;也就是相当于GPT的API 二、为什么用AssistantsAPI 优点 够全、…

华为数通方向HCIP-DataCom H12-831题库(判断题:1-20)

第01题 为了加快IS-IS网络中链路故障的感知速度,可以将IS-IS与BFD联动 正确 错误 答案:正确 解析: OSPF和IS-IS都可以设置与BFD联动加速链路故障检测 ,使用BFD时,可以实现毫秒级别的链路切换,所以使用IS–IS与BFD联动,可以加快IS–IS的感知速度 第02题 在OSPF中ABR会将…

MySQL表的内连和外连

文章目录 前言一、表的内连接和外连接内连接外连接左外连接右外连接 使用场景 前言 一、表的内连接和外连接 表的连接分为内连接和外连接。 内连接 内连接实际上就是利用where子句对两种表形成的笛卡儿积进行筛选&#xff0c;我们前面学习的查询都是内连接&#xff0c;也是在…

推荐几个Github高星GoLang管理系统

在Web开发领域&#xff0c;Go语言&#xff08;Golang&#xff09;以其高效、简洁、高并发等特性逐渐成为许多开发者的首选语言。有许多优秀的Go语言Web后台管理系统&#xff0c;这些项目星星众多&#xff0c;提供了丰富的功能和良好的代码质量。本文将介绍一些GitHub高星的GoLa…

工具推荐 |Devv.ai — 最懂程序员的新一代 AI 搜索引擎

介绍 伴随 GPT 的出现&#xff0c;我们可以看到越来越多的 AI 产品&#xff0c;其中也不乏针对程序员做的代码生成工具。 今天介绍的这款产品是一款针对中文开发者的 AI 搜索引擎&#xff0c;Devv.ai 使用 Devv.ai 的使用非常简单&#xff0c;就是传统的搜索场景&#xff…

传感数据分析——傅里叶滤波与小波滤波

传感数据分析——傅里叶滤波与小波滤波 文章目录 传感数据分析——傅里叶滤波与小波滤波前言一、运行环境二、Python实现总结 前言 傅里叶滤波的原理&#xff1a; 傅里叶滤波是基于傅里叶变换的一种信号处理方法&#xff0c;它的原理如下&#xff1a; 傅里叶变换&#xff1a; …

图像处理------亮度

from PIL import Imagedef change_brightness(img: Image, level: float) -> Image:"""按照给定的亮度等级&#xff0c;改变图片的亮度"""def brightness(c: int) -> float:return 128 level (c - 128)if not -255.0 < level < 25…

mysql从入门到放弃之数据库体系结构与管理

文章目录 前言一、体系结构1、mysql c/s结构介绍2、mysql实例组成3、mysqld程序运行原理3.1、mysqld守护进程结构3.2、 引入sql语句结构化的查询语言3.3、探索一条SQL语句的执行过程 二、mysql逻辑存储结构三、mysql物理存储结构3.1、innodb存储引擎的段、区、页之间的关系 四、…

CMU15-445-Spring-2023-Project #3 - Query Execution

前置知识&#xff0c;参考上一篇博客&#xff1a;CMU15-445-Spring-2023-Project #3 - 前置知识&#xff08;lec10-14 Parser&#xff1a;将SQL query转变为ASTBinder&#xff1a;将查询语句与数据库元数据进行绑定&#xff0c;验证查询的正确性和有效性Planner&#xff1a;为…

2024年美赛数学建模思路 - 案例:FPTree-频繁模式树算法

文章目录 算法介绍FP树表示法构建FP树实现代码 建模资料 ## 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 算法介绍 FP-Tree算法全称是FrequentPattern Tree算法&#xff0c;就是频繁模式树算法&#xff0c…