Elasticsearch:ES|QL 的限制

news2024/11/17 17:38:42

尽管 ES|QL 带来性能及使用上的便捷,在实际的使用中,它还是有一些限制。在今天的文章中,我们来列举它的一些限制。

结果集大小限制

默认情况下,ES|QL 查询最多返回 500 行。 你可以使用 LIMIT 命令将行数增加到最多 10,000 行。 无论 LIMIT 命令的值如何,查询都不会返回超过 10,000 行。

此限制仅适用于查询检索的行数。 查询和聚合在完整数据集上运行。

为了克服这个限制:

  • 通过修改查询以仅返回相关数据来减少结果集大小。 使用 WHERE 选择数据的较小子集。
  • 将任何查询后处理转移到查询本身。 你可以使用 ES|QL STATS ... BY 命令来聚合查询中的数据。

可以使用这些动态集群设置更改默认和最大限制:

  • esql.query.result_truncation_default_size
  • esql.query.result_truncation_max_size

字段类型

支持的类型

ES|QL 目前支持以下字段类型:

  • alias
  • boolean
  • date
  • double (floathalf_floatscaled_float are represented as double)
  • ip
  • keyword family including keywordconstant_keyword, and wildcard
  • int (short and byte are represented as int)
  • long
  • null
  • text
  • unsigned_long
  • version

不支持的类型

ES|QL 尚不支持以下字段类型:

  • TSDB metrics

    • counter
    • position
    • aggregate_metric_double
  • Geo/spatial

    • geo_point
    • geo_shape
    • point
    • shape
  • Date/time

    • date_nanos
    • date_range
  • Other types

    • binary
    • completion
    • dense_vector
    • double_range
    • float_range
    • histogram
    • integer_range
    • ip_range
    • long_range
    • nested
    • rank_feature
    • rank_features
    • search_as_you_type

查询具有不受支持的类型的列会返回错误。 如果查询中未显式使用类型不受支持的列,则返回空值(嵌套字段除外)。 根本不返回嵌套字段。

文本字段的行为类似于关键字字段

虽然 ES|QL 支持 text 字段,但 ES|QL 并不像 Search API 那样处理这些字段。 ES|QL 查询不会查询或聚合已分析的字符串 (analyzed string)。 相反,ES|QL 查询将尝试获取 keyword 族类型的 text 字段的子字段并对其进行查询/聚合。 如果无法检索关键字子字段,ES|QL 将从文档的 _source 获取字符串。 如果无法检索 _source,例如使用合成源时,则返回 null。

请注意,ES|QL 对 keyword 子字段的检索可能会产生意想不到的后果。 文本字段上的 ES|QL 查询区分大小写。 此外,子字段可能已使用规范化器(normalizer)进行映射,该规范化器可以转换原始字符串。 或者它可能已使用 ignore_above 进行映射,这可以截断字符串。 这些映射操作均不会应用于 ES|QL 查询,这可能会导致误报或漏报。

为了避免这些问题,最佳实践是明确你查询的字段,并查询关键字子字段而不是文本字段。

不支持时间序列数据流

ES|QL 不支持查询时间序列数据流(TSDS)。

日期数学限制

当最左边的表达式是日期时间时,日期数学表达式可以很好地工作,例如:

now() + 1 year - 2hour + ...

但并不总是支持使用括号或将日期时间放在右侧。 例如,以下表达式会失败:

1year + 2hour + now()
now() + (1year + 2hour)

日期数学不允许减去两个日期时间,例如:

now() - 2023-10-26

丰富限制

ES|QL ENRICH 命令仅支持 match 类型的丰富策略。 此外,ENRICH 仅支持对 keyword 类型的列进行丰富。

Kibana 限制

  • 当 Discover 处于 ES|QL 模式时,不会启用用于过滤数据的用户界面。 要过滤数据,请编写一个使用 WHERE 命令的查询。
  • 在 ES|QL 模式下,单击 “Discover” 字段列表中的字段不会显示该字段的快速统计信息。
  • Discover 显示的行数不超过 10,000 行。 此限制仅适用于查询检索并显示在 Discover 中的行数。 查询和聚合在完整数据集上运行。
  • Discover 显示不超过 50 列。 如果查询返回超过 50 列,Discover 仅显示前 50 列。
  • 在没有任何过滤器的情况下一次查询许多索引可能会导致 kibana 出现错误,类似于[esql] > Unexpected error from Elasticsearch: The content length (536885793) is bigger than the maximum allowed string (536870888).。 ES|QL 的响应太长。 使用 DROP 或 KEEP 来限制返回的字段数。

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

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

相关文章

SDH设备

文章目录 实际的SDH设备结构:OSN3500

Archicad 26 (BIM建模软件)

Archicad 26是一款建筑信息模型(BIM)软件,由Graphisoft公司开发。它提供了全面的设计和建模工具,用于创建3D建筑模型、制作施工图纸等。 Archicad 26支持多种文件格式,并且可以与其他CAD软件进行互操作。它具有强大的建…

关于mysql自增列起始值与数据实际id不一致的问题

从一个数据表生成表结构和数据的脚本之后。把脚本复制到另一个数据库执行同步数据结构和数据。 Navicat 发生了如下异常提示,并中断了脚本执行: Duplicate entry 51110 for key sys_log.PRIMARY 然后检查sys_log表的建表脚本,发现有如下行&…

期中考试后,老师用它发成绩

期中考试过后,对于老师们来说,最烦的就是学生家长一直不停的咨询成绩。然而,一群班群直接公布成绩不仅耗时,还不合规。那么,如何用代码和Excel实现让学生自助查询成绩呢?下面,我将向各位老师介绍…

[C/C++]数据结构 链表OJ题:移除链表元素

题目描述: 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val val 的节点,并返回 新的头节点 方法一: 从头开始遍历链表,当遇到相同元素则跳过该元素,指向下一节点 struct ListNode* removeElements(struct ListNode* head…

智慧法院 | 平均执行效率提升86%,RPA数字劳动力改善法院整体工作效能

为深化政法智能化建设,加强“智慧治理”“智慧法院”“智慧检务”“智慧警务”“智慧司法”等信息平台建设,深入实施大数据战略,实现科技创新成果同政法工作深度融合。法制日报社于今年3月继续举办了2023政法智能化建设创新案例及论文征集宣传…

利用TexturePacker 进行pvr.ccz与png互转

这几天在玩 小冰冰传奇 有几个新的游戏角色甚是喜欢,想找几张图片看看,索性就去下载apk找找里面的图片 https://dgame-apk.lilithgame.com/dtcq_675.lilith-android1013.apk 500多M 然后去下载TexturePacker这个软件 27M 我们直接把 dtcq_675.lil…

Vue路由(router-link)——高亮、动态传参

一、声明式导航-导航链接 1.需求 实现导航高亮效果 如果使用a标签进行跳转的话,需要给当前跳转的导航加样式,同时要移除上一个a标签的样式,太麻烦!!! 2.解决方案 vue-router 提供了一个全局组件 router…

led台灯哪些牌子性价比高?推荐五个性价比超高的护眼台灯

作为学龄期儿童的家长,最担心的就是孩子长时间学习影响视力健康。无论是上网课、写作业、玩桌游还是陪伴孩子读绘本,都需要一个足够明亮的照明环境,因此选购一款为孩子视力发展保驾护航的台灯非常重要。为大家推荐几款性价比高的护眼台灯。 …

Devchat AI尝鲜试用:程序员开发提效利器,告别脏活累活

DevChat 简介 在当今的软件开发领域,程序员们每天都要面对海量的代码和复杂的任务。尽管技术不断发展,但程序员们依然需要花费大量时间进行重复性工作,如代码审查、错误排查、文档编写等。这些脏活累活不仅消耗了程序员们大量的时间和精力&am…

科东软件新型工业操作系统亮相2023工控中国大会

近日,2023第三届工控中国大会在苏州太湖国际会议中心成功举办!大会由中国电子信息产业发展研究院、中国工业经济联合会、国家智能制造专家委员会、国家产业基础专家委员会、江苏省工业和信息化厅、江苏省国有资产监督管理委员会、苏州市人民政府共同主办…

守护线程和非守护线程

一、前言 借鉴文章: 文章1 文章2 ①Java提供的两种线程 Java提供了两种线程: 守护线程和用户线程(非守护线程) 守护线程(Daemon Thread): 在程序运行时 在后台提供一种通用服务的线程&#x…

如何使用 NFTScan NFT API 在 Arbitrum 网络上开发 Web3 应用

Arbitrum 是以太坊的 Layer 2 扩容方案,为以太坊面临的高 gas 费和网络拥堵问题,提供了一个解决方案。作为 Layer 1 的以太坊基础层受每秒只能验算 15 笔交易的限制,在目前以太坊使用需求庞大的情况下,局限了以太坊的可扩展性。Ar…

计算机毕业设计 基于SpringBoot房屋租赁管理系统的设计与实现 Javaweb项目 Java实战项目 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点…

机器视觉 opencv 深度学习 驾驶人脸疲劳检测系统 -python 计算机竞赛

文章目录 0 前言1 课题背景2 Dlib人脸识别2.1 简介2.2 Dlib优点2.3 相关代码2.4 人脸数据库2.5 人脸录入加识别效果 3 疲劳检测算法3.1 眼睛检测算法3.2 打哈欠检测算法3.3 点头检测算法 4 PyQt54.1 简介4.2相关界面代码 5 最后 0 前言 🔥 优质竞赛项目系列&#x…

深度学习经典网络:GoogleNet

深度学习经典网络--GoogleNet 1、为什么要提出Inception2、为什么是Inception3、实际中的Inception4、GoogleNet 整体网络结构 GoogLeNet是google推出的基于Inception模块的深度神经网络模型,在2014年的ImageNet竞赛中夺得了冠军,在随后的两年中一直在改…

全方位解析解决找不到msvcp120dll,无法继续执行代码问题的方法

在日常使用电脑的过程中,我们可能会遇到 “找不到msvcp120dll,无法继续执行代码” 的问题。大部分用户并不清楚msvcp120.dll是什么,更不知道怎样修复这个问题。其实不要紧的,今天我们就来了解一下msvcp120.dll文件,并且告知你多种…

react antd message多条数据展示样式

最终效果: 前言: 平时我们经常用到message来做一些错误提示,最常见的就是单行提示。如下图: 实现代码: message.error(This is an error message)多行动态message实现 参考文献:antd message 链接地址&a…

SOLIDWORKS 2024新产品发布会暨SOLIDWORKS 创新日活动-硕迪科技

“达索系统SOLIDWORKS 2024新产品发布会暨SOLIDWORKS创新日” 线下发布会即将登场!硕迪科技与达索系统携手为您奉上一场“云享未来,智协未来”的创新年度盛会,欢迎莅临! SOLIDWORKS 2024 以更加强大的姿态亮相,帮助您…

Python小技巧:bytes与str的区别

嗨喽~大家好呀,这里是魔王呐 ❤ ~! python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取 bytes实例包含的是原始数据,即8位的无符号值(通常按照ASCII编码标准来显示)。 a bh\x65llo print(list(a)) print(a) >>> [104, 101, …