我的编程空间,编程开发者的网络收藏夹
学习永远不晚

如何解析elasticsearch中的DSL查询

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

如何解析elasticsearch中的DSL查询

这期内容当中小编将会给大家带来有关如何解析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查询了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

如何解析elasticsearch中的DSL查询

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

下载Word文档

猜你喜欢

如何解析elasticsearch中的DSL查询

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

Python如何解析ElasticSearch的查询结果?(通过Python如何处理和解析ElasticSearch的查询响应?)

使用Python解析Elasticsearch查询结果的指南:解析JSON响应:使用json模块解析JSON格式的结果。提取相关字段:通过访问嵌套字典和列表提取文档ID和来源。处理嵌套数据结构:使用collections模块处理数组字段和嵌套对象。高级解析:利用XPath、正则表达式或第三方库进行更复杂的数据提取。最佳实践:避免eval()函数,使用json模块,考虑第三方库,优化代码以有效处理大量响应。
Python如何解析ElasticSearch的查询结果?(通过Python如何处理和解析ElasticSearch的查询响应?)
2024-04-02

Elasticsearch分布式搜索中的查询优化策略(如何优化Elasticsearch分布式搜索的查询性能?)

Elasticsearch分布式搜索中的查询优化策略有助于提高性能。策略包括:分片和副本管理(分片数、副本数)索引设置优化(映射、字段数据、_all字段禁用)查询优化(过滤器、布尔查询、范围查询)分词和排序优化(分词器选择、排序脚本)查询缓存(减少重复查询开销)其他优化(热分片、异步查询、监控和调整)
Elasticsearch分布式搜索中的查询优化策略(如何优化Elasticsearch分布式搜索的查询性能?)
2024-04-02

Python如何对ElasticSearch的查询结果进行排序和过滤?(在Python中如何对ElasticSearch查询结果进行排序和筛选?)

在Python中对Elasticsearch查询结果进行排序和过滤:排序按字段、分数或脚本排序;提供按字段升/降序排序、按分数降序排序、按脚本计算值排序等选项。过滤支持范围、模糊匹配、正则表达式等过滤类型;允许复合过滤,结合多个条件过滤结果。组合排序和过滤可同时应用排序和过滤条件,实现更精细的查询控制。执行查询使用execute()方法执行查询,返回匹配的文档,包括相关性得分和元数据。高级选项聚合分组结果;高亮匹配查询字符串;分页控制结果页面。
Python如何对ElasticSearch的查询结果进行排序和过滤?(在Python中如何对ElasticSearch查询结果进行排序和筛选?)
2024-04-02

Elasticsearch分布式搜索的跨域查询与聚合处理(如何处理Elasticsearch分布式搜索中的跨域查询和聚合?)

Elasticsearch通过跨索引集群(CCS)支持跨域查询,使用CCR插件将索引复制到目标集群。跨域聚合也类似,但需要CCS插件。最佳实践包括使用单独索引、优化网络、使用管理工具和监控性能。跨域查询和聚合提供了对分布式数据的访问,但可能更昂贵且受网络延迟影响。
Elasticsearch分布式搜索的跨域查询与聚合处理(如何处理Elasticsearch分布式搜索中的跨域查询和聚合?)
2024-04-02

详解如何查看Elasticsearch的Debug日志

这篇文章主要为大家介绍了详解如何查看Elasticsearch的Debug日志,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2022-11-16

Elasticsearch分布式搜索中的近义词与模糊查询处理(Elasticsearch如何处理分布式搜索中的近义词和模糊查询?)

Elasticsearch通过同义词词库和编辑距离算法处理分布式搜索中的近义词和模糊查询。同义词词库扩展查询以包含相关术语,而模糊查询匹配相似术语,编辑距离为低。这在分布式群集中以本地方式执行,提供可扩展性、低延迟和一致性。此外,Elasticsearch提供拼写检查、自动完成、N-gram分词和自定义同义词词库等相关功能,以增强近义词和模糊查询处理,确保准确且相关的搜索结果。
Elasticsearch分布式搜索中的近义词与模糊查询处理(Elasticsearch如何处理分布式搜索中的近义词和模糊查询?)
2024-04-02

如何解析 graphql 查询以获取 go 中的操作名称?

php小编百草为您介绍如何解析 GraphQL 查询以获取 Go 中的操作名称。GraphQL是一种查询语言,用于获取和修改数据。在Go语言中,我们可以使用一些库来解析GraphQL查询,并提取出操作名称。具体的步骤是,首先解析GraphQ
如何解析 graphql 查询以获取 go 中的操作名称?
2024-02-09

如何理解JpaRepository的关联查询和@Query查询

如何理解JpaRepository的关联查询和@Query查询,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一 pom2023-06-21

Navicat如何分析SQL查询的性能

Navicat并没有内置的性能分析工具,但是可以通过以下方法来分析SQL查询的性能:使用EXPLAIN命令:在SQL查询语句前加上EXPLAIN关键字可以获取该查询的执行计划,包括索引使用情况、表的读取顺序等信息,从而帮助优化查询性能。使
Navicat如何分析SQL查询的性能
2024-05-10

Oracle如何查看运行中的查询

在Oracle数据库中,可以使用以下方法来查看运行中的查询:使用动态性能视图:可以查询v$session视图来查看当前运行中的所有会话和查询信息。你可以使用以下查询来查看当前运行中的查询:SELECT s.sid, s.serial#, s
Oracle如何查看运行中的查询
2024-04-19

mysql中文查询乱码如何解决

本篇内容介绍了“mysql中文查询乱码如何解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!MySQL 中文查
2023-05-12

MySQL中如何处理大数据量的查询和分析

大数据量查询和分析的优化策略优化大数据查询和分析涉及以下策略:硬件优化:选择高性能服务器、SSD和云计算。数据库设计:创建索引、使用分区表和优化数据类型。查询优化:分析查询、重写查询和使用缓存。分布式处理:分片、分布式数据库和大数据框架。其他技术:查询缓存、缓冲池调优和批处理。针对特定用例,还需考虑实时分析(in-memory数据库、流处理)和机器学习(优化工具、GPU加速)的附加优化。
MySQL中如何处理大数据量的查询和分析
2024-04-09

MySQL中如何处理大数据量的查询和分析

在MySQL中处理大数据量的查询和分析需要考虑以下几点:使用索引:确保表中涉及到的列都有合适的索引,这样可以加快查询速度。避免全表扫描:尽量避免使用SELECT *,只选择需要的列,减少检索的数据量。使用合适的数据类型:选择合适的数据类型可
MySQL中如何处理大数据量的查询和分析
2024-03-06

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录