广告
返回顶部
首页 > 资讯 > 精选 >如何解析elasticsearch中的DSL查询
  • 658
分享到

如何解析elasticsearch中的DSL查询

2023-06-19 12:06:25 658人浏览 独家记忆
摘要

这期内容当中小编将会给大家带来有关如何解析elasticsearch中的DSL查询,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。ES提供了基于JSON的完整查询DSL,它由两种子句组成 ##1.查询分类

这期内容当中小编将会给大家带来有关如何解析elasticsearch中的DSL查询,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

ES提供了基于JSON的完整查询DSL,它由两种子句组成
##1.查询分类 1>基本查询
常用查询命令:match、term、range。
2>复合查询
复合查询由一个基本查询或者多个基本查询组成,用逻辑方式组合(bool或者dis_max),或者更改查询条件的行为(constant_score)。
3>ES还允许一种昂贵查询,暂时用不到,就不在这里记录,详情查看官网。
##2.查询与过滤上下文
我们使用_search api来检索相关内容
如何解析elasticsearch中的DSL查询
由图可知:took表示本次查询所花时间,time_out表示本次查询是否超时,hits节点中是查询到的内容。
常用的查询参数如下:
query,指定查询条件
match,模糊查询,eg:查询"张",会将小张、张三等查询出来
term,精确查找,eg: age=33
bool,多条件联合查询
must,用于bool条件下,eg: name="zhang san" and age="33"
should,用于bool条件下,eg:name="zhang san" or age="33"
filter,过滤检索结果
range,区间查询,eg:price > 8000
下面造数据举例上面常用的查询指令
PUT /user/_doc/1 { "id":1001, "name":"张三", "age":30, "sex":"0", "add_time":"2020-09-22" }
PUT /user/_doc/2 { "id":1002, "name":"张七", "age":35, "sex":"0", "add_time":"2020-09-24" }
term表示完全匹配,也就是精确查询,检索前不会再对检索词进行分词拆解。如上的数据中,我们来检索"张三"
如何解析elasticsearch中的DSL查询
发现没有检索到数据,这是为什么呢?从es的官网得知,term属于精确匹配,只能检索单个词,eg:我们检索"三",
如何解析elasticsearch中的DSL查询
发现就被检索出来了。那我们的希望是精确查找"张三",应该怎么做呢?这时候我们就用到了复合查询,如下
如何解析elasticsearch中的DSL查询
bool表示复合查询标志,must表示之内的条件必须同时满足。
这里为什么要采用复合查询的方式才能检索出数据呢?这是因为name这个词在进行存储的时候,就做了分词处理。我这里是采用默认分词器进行分词处理的,我们可以查看下默认分词器是如何处理的,
如何解析elasticsearch中的DSL查询
好了,term理解清楚了,再来看match
我们还是检索"张三",得出的结果如下,
如何解析elasticsearch中的DSL查询
咦,"张七"咋个被检索出来了?这是因为match进行检索的时候,会先进行检索词拆分,拆完后,再根据单个词去检索,所以如上的检索结果是:包含"张"与"三"的词都会被检索出来。
扩展一下,如果想查询包含"张三"的语句,即"张三"要紧邻在一起出现,采用match_phrase,
如何解析elasticsearch中的DSL查询

上述就是小编为大家分享的如何解析elasticsearch中的DSL查询了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网精选频道。

--结束END--

本文标题: 如何解析elasticsearch中的DSL查询

本文链接: https://www.lsjlt.com/news/295867.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何解析elasticsearch中的DSL查询
    这期内容当中小编将会给大家带来有关如何解析elasticsearch中的DSL查询,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。ES提供了基于JSON的完整查询DSL,它由两种子句组成 ##1.查询分类 ...
    99+
    2023-06-19
  • Node.js中如何查询字符串解析querystring
    小编给大家分享一下Node.js中如何查询字符串解析querystring,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、qu...
    99+
    2022-10-19
  • 详解如何查看Elasticsearch的Debug日志
    目录正文源码分析apply setting 代码正文 当我们遇到问题或者需要深入了解 Elasticsearch 的运行机制时,调整日志等级( logging level&...
    99+
    2022-11-16
    Elasticsearch Debug日志查看 Elasticsearch Debug
  • Redis的查询很快的原因解析及Redis如何保证查询的高效
    目录Redis如何保证高效的查询效率为什么Redis比较快Redis中的数据结构1、简单动态字符串2、链表3、字典4、跳表5、整数数组6、压缩列表为什么单线程还能很快基于多路复用的高...
    99+
    2022-11-13
  • 如何理解JpaRepository的关联查询和@Query查询
    如何理解JpaRepository的关联查询和@Query查询,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一 pom<project xmlns=&quo...
    99+
    2023-06-21
  • mysql:not in(子查询),子查询中存在Null值的情况分析与解决
    score1: score2:  当我们经常在where子句过滤条件中使用not in时 ,如:  查询score1分数不在score2分数中的数据,: select * from score1 wher...
    99+
    2023-09-08
    mysql sql 数据库
  • MySQL中的查询优化器工作原理解析
    MySQL是一种常用的关系型数据库管理系统,广泛应用于各种Web应用程序和大型企业级系统中。在MySQL的日常使用中,查询语句是最常见和重要的操作之一。为了提高查询效率和性能,MySQL引入了查询优化器。查询优化器是MySQL内部的一个组件...
    99+
    2023-10-22
    查询优化器 MySQL中 工作原理解析
  • 如何分析Web应用架构中的查询传递
    本篇文章为大家展示了如何分析Web应用架构中的查询传递,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。在Web应用开发中,最常见也容易变化的一种需求是根据不同的查询条...
    99+
    2022-10-19
  • mysql中文查询乱码如何解决
    本篇内容介绍了“mysql中文查询乱码如何解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2023-05-12
    mysql
  • MySQL 中查询速度慢如何解决
    这篇文章给大家介绍MySQL 中查询速度慢如何解决,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、什么影响了数据库查询速度1.1 影响数据库查询速度的四个因素1.2 风险分析QPS:...
    99+
    2022-10-18
  • 如何使用Jackson和JSON Pointer查询解析任何JSON节点
    目录Jackson和JSON Pointer查询解析任何JSON节点1.示例Json文档2. 解析文档Jackson 通用解析JSON方法Jackson和JSON Pointer查询...
    99+
    2022-11-12
  • MySQL中如何启用并分析慢查询日志
    MySQL中如何启用并分析慢查询日志,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Mysql有一...
    99+
    2022-10-18
  • 如何进行sql表连接查询的分析
    如何进行sql表连接查询的分析,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。连接查询:连接查询是指基于两个或者两个以上的表或者...
    99+
    2022-10-19
  • MongoDB中查询超时异常如何解决
    MongoDB中查询超时异常如何解决,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。在对超过百万条记录的集合进行聚合操作。DBO...
    99+
    2022-10-18
  • 分析mysql中一条SQL查询语句是如何执行的
    目录一、MySQL 逻辑架构概览二、连接器(Connector)三、查询缓存(Query Cache)四、解析器(Parser)五、优化器(Optimizer)六、执行器七、小结一、MySQL 逻辑架构概览 MySQ...
    99+
    2022-05-30
    mysql 查询 查询 执行过程
  • php如何解决sql查询语句中中文的问题
    本文小编为大家详细介绍“php如何解决sql查询语句中中文的问题”,内容详细,步骤清晰,细节处理妥当,希望这篇“php如何解决sql查询语句中中文的问题”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、中文字符的...
    99+
    2023-07-05
  • ​PostgreSQL如何解析查询语句中的表达式列并计算得出该列的值
    这篇文章主要介绍PostgreSQL如何解析查询语句中的表达式列并计算得出该列的值,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!表达式列是指除关系定义中的系统列/定义列之外的其他投影...
    99+
    2022-10-18
  • navicat如何查询表中的数据
    要查询表中的数据,可以按照以下步骤操作: 打开Navicat软件,连接到相应的数据库服务器。 在连接成功后,展开数据库列表,找到目...
    99+
    2023-10-26
    navicat
  • 如何在cmd中查看域名解析
    在cmd中查看域名解析信息的方法首先,在计算机中使用组件“win+R”运行cmd,打开命令提示符窗口;进入到命令提示符窗口后,在命令行中执行nslookup命令即可查看域名解析信息;1)查询域名解析的A记录nslookup -qt=A ba...
    99+
    2022-10-05
  • 如何解决mysql中count查询速度很慢的问题
    这篇文章主要介绍了如何解决mysql中count查询速度很慢的问题,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。MySQL 大表的count()...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作