搜索客社区日报 第1979期 (2025-01-27)
社区日报 • Muses 发表了文章 • 0 个评论 • 149 次浏览 • 20 小时前
https://infinilabs.cn/blog/202 ... beat/
2、如何使用 Filebeat 8 连接 Easysearch
https://infinilabs.cn/blog/202 ... arch/
3、Easysearch 集群通过 API 进行用户密码重置
https://infinilabs.cn/blog/202 ... word/
4、Easysearch 集群重置 admin 用户密码
https://infinilabs.cn/blog/202 ... word/
5、使用 Elasticsearch 导航检索增强生成图表
https://elasticstack.blog.csdn ... .5502
编辑:Muse
更多资讯:http://news.searchkit.cn
INFINI Labs 产品更新 | Easysearch 增强 Rollup 能力,Console 完善 TopN 指标等
资讯动态 • INFINI Labs 小助手 发表了文章 • 0 个评论 • 296 次浏览 • 1 天前
![release](https://infinilabs.cn/img/blog/release/banner.png)
INFINI Labs 产品更新发布!此次更新,Easysearch 增强 Rollup 能力,支持更多的聚合方式;Console 完善了 TopN 的指标,支持自定义视图,并内嵌视图模板;Gateway 进行了多处优化以及修复相关 Bug 等等。欢迎下载体验,探索更多可能!
## INFINI Easysearch v1.10.1
INFINI Easysearch 是一个分布式的搜索型数据库,实现非结构化数据检索、全文检索、向量检索、地理位置信息查询、组合索引查询、多语种支持、聚合分析等。Easysearch 可以完美替代 Elasticsearch,同时添加和完善多项企业级功能。Easysearch 助您拥有简洁、高效、易用的搜索体验。
Easysearch 本次更新如下:
### 功能更新
- Rollup 增加支持聚合的种类
- 增加支持 Filter aggregation,某些场景可以用来替代 query
- 增加针对个别字段自定义 special_metrics 指标的配置项
- 增加支持 Bucket sort aggregation
- Rollup 查询 API 提供了 debug 参数,有助于调试
### 问题修复
- 修复数据节点和 master 节点角色分离时,Security 索引创建失败问题
### 优化改进
- Rollup 查询 增加 response 标识是否有 rollup 数据
- Rollup response total hits 不再为 0
- Rollup job 支持 更新操作,通过更新索引文档实现
- rollup.hours_before 配置项只影响查询时间范围,不影响写入
关于 Rollup 具体如何使用,请查看这篇单独的博客:[介绍 Easysearch 的 Rollup](https://infinilabs.cn/blog/202 ... ollup/)
## INFINI Console v1.28.1
INFINI Console 是一款非常轻量级的多集群、跨版本的搜索基础设施统一管控平台。通过对流行的搜索引擎基础设施进行跨版本、多集群的集中纳管, 企业可以快速方便的统一管理企业内部的不同版本的多套搜索集群。
Console 在线体验:
<http://demo.infini.cloud> (用户名/密码:readonly/readonly)。
Console 本次更新如下:
### 功能更新
- 创建集群时支持配置多个主机地址,增强集群的高可用性
- Insight Data API 支持函数格式查询,方便拓展查询功能
- 提供 API 来 Dump 查看当前存储的 Badger Key 列表
- Rollup 支持场景条件适配,要求 Easysearch > 1.9.2
- TopN 内置指标- 索引指标(agent 采集模式)
- TopN 内置视图模版
- TopN 支持自定义数据视图
### 问题修复
- 修复 Badger KV 存储内存占用过高的问题
### 优化改进
- LDAP 配置支持带特殊符号“点”(.) 验证(#46)
## INFINI Gateway v1.28.1
INFINI Gateway 是一个开源的面向搜索场景的高性能数据网关,所有请求都经过网关处理后再转发到后端的搜索业务集群。基于 INFINI Gateway 可以实现索引级别的限速限流、常见查询的缓存加速、查询请求的审计、查询结果的动态修改等等。
Gateway 本次更新如下:
### 功能更新
- 支持在批量相关过滤器中使用简单的批量元数据(#59)
- 在 Elasticsearch 过滤器中后端故障时无缝重试请求(#63)
### 优化改进
- 移除 Elasticsearch 过滤器中因模式不匹配导致的不必要节点重新选择(#62)
## INFINI Agent v1.28.1
INFINI Agent 负责采集和上传 Elasticsearch, Easysearch, Opensearch 集群的日志和指标信息,通过 INFINI Console 管理,支持主流操作系统和平台,安装包轻量且无任何外部依赖,可以快速方便地安装。
Agent 本次更新如下:
### 问题修复
- 修复一个空指针判断的问题
- 同步更新 Framework 修复的一些已知问题
## INFINI Loadgen v1.28.1
INFINI Loadgen 是一款开源的专为 Easysearch、Elasticsearch、OpenSearch 设计的轻量级性能测试工具。
Loadgen 本次更新如下:
### 问题修复
- 同步更新 Framework 修复的一些已知问题
## INFINI Framework v1.1.1
INFINI Framework 是 INFINI Labs 基于 Golang 的产品的核心基础,已开源。该框架以开发者为中心设计,简化了构建高性能、可扩展且可靠的应用程序的过程。
Framework 本次更新如下:
### 功能更新
- 为 ORM 模块新增搜索功能,支持结果项映射器(#65)
- 新增统计 API,用于快速从 Badger DB 中查找前 N 个键(#67)
- 主动恢复失效节点的可用性(#72)
### 优化改进
- 为 HTTP 处理程序添加实用工具,支持解析布尔参数
- 处理简化的批量元数据,从 URL 路径中解析索引(#59)
- 改进部分加载文件的消息读取处理(#63)
**更多详情请查看以下详细的 Release Notes 或联系我们的技术支持团队!**
- [**INFINI Easysearch**](https://infinilabs.cn/docs/lat ... earch/)
- [**INFINI Console**](https://docs.infinilabs.com/co ... notes/)
- [**INFINI Gateway**](https://docs.infinilabs.com/ga ... notes/)
- [**INFINI Agent**](https://docs.infinilabs.com/ag ... notes/)
- [**INFINI Loadgen**](https://docs.infinilabs.com/lo ... notes/)
- [**INFINI Framework**](https://docs.infinilabs.com/fr ... notes/)
## 期待反馈
欢迎下载体验使用,如果您在使用过程中遇到如何疑问或者问题,欢迎前往 INFINI Labs Github(<https://github.com/infinilabs>) 中的对应项目中提交 Feature Request 或提交 Bug。
**下载地址:** <https://infinilabs.cn/download>
**邮件**:**hello@infini.ltd**
**电话**:**(+86) 400-139-9200**
**Discord**:<https://discord.gg/4tKTMkkvVX>
也欢迎大家微信扫码添加小助手(INFINI-Labs),加入用户群一起讨论交流。
![](https://infinilabs.com/img/blo ... ew.jpg)
## 关于极限科技(INFINI Labs)
![INFINI Labs](https://infinilabs.cn/img/blog ... bs.png)
极限科技,全称极限数据(北京)科技有限公司,是一家专注于实时搜索与数据分析的软件公司。旗下品牌极限实验室(INFINI Labs)致力于打造极致易用的数据探索与分析体验。
极限科技是一支年轻的团队,采用天然分布式的方式来进行远程协作,员工分布在全球各地,希望通过努力成为中国乃至全球企业大数据实时搜索分析产品的首选,为中国技术品牌输出添砖加瓦。
官网:<https://infinilabs.cn>
活动回顾 - 第6期 搜索客 Meetup 线上直播活动圆满结束,附 PPT 下载和视频回放
资讯动态 • searchkit 发表了文章 • 0 个评论 • 469 次浏览 • 3 天前
2025 年 01 月 17 日,由搜索客社区和极限科技(INFINI Labs)联合举办的第 6 期线上 Meetup 技术交流直播活动圆满结束。本期 Meetup 直播活动吸引了超过 500+ 人次的技术爱好者观看参与,主要讨论了 Easysearch、Easysearch 搜索引擎性能优化和系统稳定性的相关问题,包括读请求限速、写请求限速、索引管控等。
本期 Meetup 活动主题
本期 Meetup 活动由 极限科技(INFINI Labs)高级解决方案架构师 杨帆老师 为大家带来了主题为 《Easysearch 请求限速漫谈》 精彩分享。和大家一起畅谈了为什么要限速,限速的需求来源,以及读写限速的实现方式等。
以下为摘取 PPT 部分内容截图:
活动中杨老师和大家保持互动问答,在线观众积极参与。同时,在整个直播过程中,主持人进行了多轮激动人心的抽奖活动,为参会小伙伴带来了额外的惊喜。
最后感谢大家的参与和支持,让我们共同期待下一次 搜索客 Meetup 活动带来更多的精彩内容!
本期 Meetup PPT 下载
本期 PPT 下载的链接:https://searchkit.cn/slides/329
本期 Meetup 视频回放
扫码关注极限实验室视频号查看直播回放,或者扫码关注极限实验室 B 站 账号,可查看本期 Meetup 活动视频。我们也会在视频号、B 站持续更新最新技术视频,欢迎通过点赞、投币,收藏,三连来支持我们。
![](https://searchkit.cn/uploads/a ... 6e.jpg)
Meetup 活动讲师招募
![讲师招募](https://infinilabs.cn/img/blog ... ng.png)
搜索客社区 Meetup 的成功举办,离不开社区小伙伴的热情参与。目前社区讲师招募计划也在持续进行中,我们诚挚邀请各位技术大咖、行业精英踊跃提交演讲议题,与大家分享您的经验。
讲师报名链接:[http://cfp.searchkit.cn](http://cfp.searchkit.cn)
或扫描下方二维码,立刻报名成为讲师!
![](https://searchkit.cn/uploads/a ... fe.png)
Meetup 活动聚焦 AI 与搜索领域的最新动态,以及数据实时搜索分析、向量检索、技术实践与案例分析、日志分析、安全等领域的深度探讨。
我们热切期待您的精彩分享!
关于 搜索客(SearchKit)社区
搜索客社区由 Elasticsearch 中文社区进行全新的品牌升级,以新的 Slogan:“搜索人自己的社区” 为宣言。汇集搜索领域最新动态、精选干货文章、精华讨论、文档资料、翻译与版本发布等,为广大搜索领域从业者提供更为丰富便捷的学习和交流平台。社区官网:[https://searchkit.cn](https://searchkit.cn) 。
关于极限科技(INFINI Labs)
![INFINI Labs](https://infinilabs.cn/img/blog ... bs.png)
极限科技,全称极限数据(北京)科技有限公司,是一家专注于实时搜索与数据分析的软件公司。旗下品牌极限实验室(INFINI Labs)致力于打造极致易用的数据探索与分析体验。
极限科技是一支年轻的团队,采用天然分布式的方式来进行远程协作,员工分布在全球各地,希望通过努力成为中国乃至全球企业大数据实时搜索分析产品的首选,为中国技术品牌输出添砖加瓦。
官网:[https://infinilabs.cn](https://infinilabs.cn)
【搜索客社区日报】第1978期 (2025-01-24)
社区日报 • Fred2000 发表了文章 • 0 个评论 • 572 次浏览 • 3 天前
https://searchkit.cn/article/15360
2、Elasticsearch 性能测试工具全解析
https://mp.weixin.qq.com/s/YnIVpVizzuuIZASZik3DgA
3、Elasticsearch 性能测试工具 Loadgen 之 001——部署及应用详解
https://mp.weixin.qq.com/s/q3XM6AeMQrTEcWgputABRw
4、ES 实战篇 - MySQL 与 Elasticsearch 的一致性问题
https://mp.weixin.qq.com/s/7e6zZ-0ArP23m3cbtmI_oA
5、如何使用 Filebeat 8 连接 Easysearch
https://infinilabs.cn/blog/202 ... arch/
编辑:Fred
更多资讯:http://news.searchkit.cn
【搜索客社区日报】第1977期 (2025-01-23)
社区日报 • Se7en 发表了文章 • 0 个评论 • 646 次浏览 • 4 天前
https://mp.weixin.qq.com/s/1hPg6KZwHQgUOLESdgdIPw
2.数据库即架构
https://mp.weixin.qq.com/s/8NS15_fkuR_gSLG50MNtMQ
3.中国软件重塑的关键一年:这 11 大领域迎来了自己的“ChatGPT时刻”
https://mp.weixin.qq.com/s/ixPvOtN11YPKjKJ2xTPb5A
编辑:Se7en
更多资讯:http://news.searchkit.cn
【搜索客社区日报】第1976期 (2025-01-22)
社区日报 • kin122 发表了文章 • 0 个评论 • 832 次浏览 • 5 天前
https://mp.weixin.qq.com/s/LNMQ-xvIigeNQZb8RPWkcg
2.重生之我们在ES顶端相遇第 13 章 - 听说你深度分页时,把ES 搞垮了?
https://mp.weixin.qq.com/s/zT9cBSACGPPJbmsvpJawIQ
3.ES 源码篇 - Elasticsearch 启动与插件加载机制解析
https://mp.weixin.qq.com/s/rziIY44XZswnBW8F0v8Lcg
4.源码篇 - 构建你的 Elasticsearch 8 本地调试环境:步骤与技巧
https://mp.weixin.qq.com/s/goHyId6k6ze9ljB9RbxBDg
编辑:kin122
更多资讯:http://news.searchkit.cn
【搜索客社区日报】第1975期 (2025-01-21)
社区日报 • God_lockin 发表了文章 • 0 个评论 • 1052 次浏览 • 6 天前
https://medium.com/%40rahul.fi ... 3477b
2. 如何保持大ES集群点健康性(需要梯子)
https://medium.com/trendyol-te ... adc06
3. 用winston把日志导入elk(需要梯子)
https://medium.com/%40aamirali ... fc5b2
编辑:斯蒂文
更多资讯:http://news.searchkit.cn
Elasticsearch VS Easysearch 性能测试
Easysearch • yangmf2040 发表了文章 • 0 个评论 • 1070 次浏览 • 6 天前
压测环境
虚拟机配置
使用阿里云上规格:[ecs.u1-c1m4.4xlarge](https://help.aliyun.com/docume ... l%23u1),PL2: 单盘 IOPS 性能上限 10 万 (适用的云盘容量范围:461GiB - 64TiB)
| vCPU | 内存 (GiB) | 磁盘(GB) | 带宽(Gbit/s) | 数量 |
| ---- | ---------- | -------- | -------------- | ---- |
| 16 | 64 | 500 | 5000 | 24 |
Easysearch 配置
7 节点集群,版本:1.9.0
| 实例名 | 内网 IP | 软件 | vCPU | JVM | 磁盘 |
| ---------------------- | -------------- | ---------- | ---- | ---- | ----- |
| i-2zegn56cijnzklcn2410 | 172.22.75.144 | Easysearch | 16 | 31G | 500GB |
| i-2zegn56cijnzklcn240u | 172.23.15.97 | Easysearch | 16 | 31G | 500GB |
| i-2zegn56cijnzklcn240i | 172.25.230.228 | Easysearch | 16 | 31G | 500GB |
| i-2zegn56cijnzklcn240y | 172.22.75.142 | Easysearch | 16 | 31G | 500GB |
| i-2zegn56cijnzklcn240x | 172.22.75.143 | Easysearch | 16 | 31G | 500GB |
| i-2zegn56cijnzklcn240z | 172.24.250.252 | Easysearch | 16 | 31G | 500GB |
| i-2zegn56cijnzklcn240r | 172.24.250.254 | Easysearch | 16 | 31G | 500GB |
Elasticsearch 配置
7 节点集群,版本:7.10.2
| 实例名称 | 内网 IP | 软件 | vCPU | JVM | 磁盘 |
| ---------------------- | -------------- | ------------- | ---- | ---- | ----- |
| i-2zegn56cijnzklcn240m | 172.24.250.251 | Elasticsearch | 16 | 31G | 500GB |
| i-2zegn56cijnzklcn240p | 172.22.75.145 | Elasticsearch | 16 | 31G | 500GB |
| i-2zegn56cijnzklcn240o | 172.17.67.246 | Elasticsearch | 16 | 31G | 500GB |
| i-2zegn56cijnzklcn240t | 172.22.75.139 | Elasticsearch | 16 | 31G | 500GB |
| i-2zegn56cijnzklcn240q | 172.22.75.140 | Elasticsearch | 16 | 31G | 500GB |
| i-2zegn56cijnzklcn240v | 172.24.250.253 | Elasticsearch | 16 | 31G | 500GB |
| i-2zegn56cijnzklcn240l | 172.24.250.250 | Elasticsearch | 16 | 31G | 500GB |
监控集群配置
单节点 Easysearch 集群,版本:1.9.0
| 实例名 | 内网 IP | 软件 | vCPU | 内存 | 磁盘 |
| ---------------------- | -------------- | -------------------- | ---- | ---- | ----- |
| i-2zegn56cijnzklcn240f | 172.25.230.226 | 监控集群:Console | 16 | 64G | 500GB |
| i-2zegn56cijnzklcn240j | 172.23.15.98 | 监控集群:Easysearch | 16 | 64G | 500GB |
压测 loadgen 配置
loadgen 版本:1.25.0
4 台压 Easysearch,4 台压 Elasticsearch。
| 实例名 | 内网 IP | 软件 | vCPU | 内存 | 磁盘 |
| ---------------------- | -------------- | -------------------------- | ---- | ---- | ----- |
| i-2zegn56cijnzklcn240n | 172.17.67.245 | Loadgen - 压 Easysearch | 16 | 64G | 500GB |
| i-2zegn56cijnzklcn2411 | 172.22.75.141 | Loadgen - 压 Easysearch | 16 | 64G | 500GB |
| i-2zegn56cijnzklcn240k | 172.25.230.227 | Loadgen - 压 Easysearch | 16 | 64G | 500GB |
| i-2zegn56cijnzklcn240e | 172.22.75.138 | Loadgen - 压 Easysearch | 16 | 64G | 500GB |
| i-2zegn56cijnzklcn240h | 172.24.250.255 | Loadgen - 压 Elasticsearch | 16 | 64G | 500GB |
| i-2zegn56cijnzklcn240w | 172.24.251.0 | Loadgen - 压 Elasticsearch | 16 | 64G | 500GB |
| i-2zegn56cijnzklcn240g | 172.24.250.248 | Loadgen - 压 Elasticsearch | 16 | 64G | 500GB |
| i-2zegn56cijnzklcn240s | 172.24.250.249 | Loadgen - 压 Elasticsearch | 16 | 64G | 500GB |
压测索引 Mapping
plain<br /> PUT nginx<br /> {<br /> "mappings": {<br /> "properties": {<br /> "method": {<br /> "type": "keyword"<br /> },<br /> "bandwidth": {<br /> "type": "integer"<br /> },<br /> "service_name": {<br /> "type": "keyword"<br /> },<br /> "ip": {<br /> "type": "ip"<br /> },<br /> "memory_usage": {<br /> "type": "integer"<br /> },<br /> "upstream_time": {<br /> "type": "float"<br /> },<br /> "url": {<br /> "type": "keyword"<br /> },<br /> "response_size": {<br /> "type": "integer"<br /> },<br /> "request_time": {<br /> "type": "float"<br /> },<br /> "request_body_size": {<br /> "type": "integer"<br /> },<br /> "error_code": {<br /> "type": "keyword"<br /> },<br /> "metrics": {<br /> "properties": {<br /> "queue_size": {<br /> "type": "integer"<br /> },<br /> "memory_usage": {<br /> "type": "integer"<br /> },<br /> "thread_count": {<br /> "type": "integer"<br /> },<br /> "cpu_usage": {<br /> "type": "integer"<br /> },<br /> "active_connections": {<br /> "type": "integer"<br /> }<br /> }<br /> },<br /> "cpu_usage": {<br /> "type": "integer"<br /> },<br /> "user_agent": {<br /> "type": "keyword"<br /> },<br /> "connections": {<br /> "type": "integer"<br /> },<br /> "timestamp": {<br /> "type": "date",<br /> "format": "yyyy-MM-dd'T'HH:mm:ss.SSS"<br /> },<br /> "status": {<br /> "type": "integer"<br /> }<br /> }<br /> },<br /> "settings": {<br /> "number_of_shards": 7,<br /> "number_of_replicas": 0,<br /> "refresh_interval": "30s"<br /> }<br /> }<br />
压测方法
每 4 个 [loadgen](https://infinilabs.cn/docs/lat ... hmark/) 使用批量写入接口 bulk 轮询压测同一集群的 7 个节点,每个请求写入 10000 个文档。
具体请求如下:
```plain
requests:
- request: #prepare some docs
method: POST
runtime_variables:
batch_no: uuid
runtime_body_line_variables:
routing_no: uuid
url: $[[env.ES_ENDPOINT]]/_bulk
url: $[[ip]]/_bulk
body_repeat_times: 10000
basic_auth:
username: "$[[env.ES_USERNAME]]"
password: "$[[env.ES_PASSWORD]]"
body: |
{"index": {"_index": "nginx", "_type": "_doc", "_id": "$[[uuid]]"}}
$[[message]]
```
压测数据样本
plain<br /> {"method":"DELETE","bandwidth":1955,"service_name":"cart-service","ip":"120.204.26.240","memory_usage":1463,"upstream_time":"1.418","url":"/health","response_size":421,"request_time":"0.503","request_body_size":1737,"error_code":"SYSTEM_ERROR","metrics":{"queue_size":769,"memory_usage":1183,"thread_count":65,"cpu_usage":68,"active_connections":837},"cpu_usage":70,"user_agent":"Mozilla/5.0 (iPad; CPU OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.1","connections":54,"timestamp":"2024-11-16T14:25:21.423","status":500}<br /> {"method":"OPTIONS","bandwidth":10761,"service_name":"product-service","ip":"223.99.83.60","memory_usage":567,"upstream_time":"0.907","url":"/static/js/app.js","response_size":679,"request_time":"1.287","request_body_size":1233,"error_code":"NOT_FOUND","metrics":{"queue_size":565,"memory_usage":1440,"thread_count":148,"cpu_usage":39,"active_connections":1591},"cpu_usage":87,"user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.1","connections":354,"timestamp":"2024-11-16T05:37:28.423","status":502}<br /> {"method":"HEAD","bandwidth":10257,"service_name":"recommendation-service","ip":"183.60.242.143","memory_usage":1244,"upstream_time":"0.194","url":"/api/v1/recommendations","response_size":427,"request_time":"1.449","request_body_size":1536,"error_code":"UNAUTHORIZED","metrics":{"queue_size":848,"memory_usage":866,"thread_count":86,"cpu_usage":29,"active_connections":3846},"cpu_usage":71,"user_agent":"Mozilla/5.0 (compatible; Googlebot/2.1; +<a href="http://www.google.com/bot.htm" rel="nofollow" target="_blank">http://www.google.com/bot.htm</a>l)","connections":500,"timestamp":"2024-11-16T15:14:30.424","status":403}<br />
压测索引 1 主分片 0 副本
Elastic 吞吐
![](https://infinilabs.cn/img/blog ... -1.jpg)
![](https://infinilabs.cn/img/blog ... -2.jpg)
Elastic 线程及队列
![](https://infinilabs.cn/img/blog ... -3.jpg)
资源消耗
![](https://infinilabs.cn/img/blog ... -4.jpg)
![](https://infinilabs.cn/img/blog ... -5.jpg)
![](https://infinilabs.cn/img/blog ... -6.jpg)
Easysearch 吞吐
![](https://infinilabs.cn/img/blog ... -7.jpg)
![](https://infinilabs.cn/img/blog ... -8.jpg)
Easysearch 线程及队列
![](https://infinilabs.cn/img/blog ... -9.jpg)
资源消耗
![](https://infinilabs.cn/img/blog ... 10.jpg)
![](https://infinilabs.cn/img/blog ... 11.jpg)
![](https://infinilabs.cn/img/blog ... 12.jpg)
对比
| 软件 | 平均集群吞吐 | 平均单节点吞吐 | 最大队列 | 磁盘消耗 |
| ------------- | ------------ | -------------- | -------- | -------- |
| Elasticsearch | 5w | 5w | 811 | 10G |
| Easysearch | 7w | 7w | 427 | 4G |
压测索引 1 主分片 1 副本
Elastic 吞吐
![](https://infinilabs.cn/img/blog ... 13.jpg)
![](https://infinilabs.cn/img/blog ... 14.jpg)
Elastic 线程及队列
![](https://infinilabs.cn/img/blog ... 15.jpg)
资源消耗
![](https://infinilabs.cn/img/blog ... 16.jpg)
Easysearch 吞吐
![](https://infinilabs.cn/img/blog ... 17.jpg)
![](https://infinilabs.cn/img/blog ... 18.jpg)
Easysearch 线程及队列
![](https://infinilabs.cn/img/blog ... 19.jpg)
资源消耗
![](https://infinilabs.cn/img/blog ... 20.jpg)
对比
| 软件 | 平均集群吞吐 | 平均单节点吞吐 | 最大队列 | 磁盘消耗(~3000 万文档) |
| ------------- | ------------ | -------------- | -------- | ----------------------- |
| Elasticsearch | 10w | 5w | 791 | 22G |
| Easysearch | 14w | 7w | 421 | 7G |
压测索引 7 主分片
Elastic 吞吐
![](https://infinilabs.cn/img/blog ... 21.jpg)
![](https://infinilabs.cn/img/blog ... 22.jpg)
Elastic 线程及队列
![](https://infinilabs.cn/img/blog ... 23.jpg)
资源消耗
![](https://infinilabs.cn/img/blog ... 24.jpg)
![](https://infinilabs.cn/img/blog ... 25.jpg)
网络
单节点平均接收 26MB/s,对应带宽:1456 Mb/s
![](https://infinilabs.cn/img/blog ... 26.jpg)
5 千万文档,总存储 105 GB,单节点 15 GB
![](https://infinilabs.cn/img/blog ... 27.jpg)
Easysearch 吞吐
![](https://infinilabs.cn/img/blog ... 28.jpg)
![](https://infinilabs.cn/img/blog ... 29.jpg)
Easysearch 线程及队列
![](https://infinilabs.cn/img/blog ... 30.jpg)
资源消耗
![](https://infinilabs.cn/img/blog ... 31.jpg)
![](https://infinilabs.cn/img/blog ... 32.jpg)
![](https://infinilabs.cn/img/blog ... 33.jpg)
![](https://infinilabs.cn/img/blog ... 34.jpg)
对比
| 软件 | 平均集群吞吐 | 平均单节点吞吐 | 最大队列 | 磁盘消耗 |
| ------------- | ------------ | -------------- | -------- | -------- |
| Elasticsearch | 35w | 5w | 2449 | 105G |
| Easysearch | 60w | 8.5w | 1172 | 36G |
总结
通过对不同场景的压测结果进行对比分析,得出以下结论:
- Easysearch 相比 Elasticsearch 的索引性能显著提升
Easysearch 集群的吞吐性能提升了 40% - 70%,且随着分片数量的增加,性能提升效果更为显著。 - Easysearch 相比 Elasticsearch 的磁盘压缩效率大幅提高
Easysearch 集群的磁盘压缩效率提升了 2.5 - 3 倍,并且随着数据量的增加,压缩效果愈发明显。
此测试结果表明,[Easysearch](https://infinilabs.cn/docs/latest/easysearch/) 在日志处理场景中具有更高的性能与存储效率优势,尤其适用于大规模分片与海量数据的使用场景。
如有任何问题,请随时联系我,期待与您交流!
![](https://infinilabs.cn/img/blog ... gf.png)
- Easysearch 相比 Elasticsearch 的索引性能显著提升
搜索客社区日报 第1974期 (2025-01-20)
社区日报 • Muses 发表了文章 • 0 个评论 • 1061 次浏览 • 6 天前
https://mp.weixin.qq.com/s/moVLtn0_necwuyxdIlosSg
2、AI编程工具使用技巧——通义灵码
https://blog.csdn.net/weixin_7 ... 12263
3、一文读懂 ESLint配置
https://blog.csdn.net/qq_61654 ... 26398
4、微服务篇-深入了解索引库与文档 CRUD 操作、使用 RestCliet API 操作索引库与文档 CRUD(Java 客户端连接 Elasticsearch 服务端)
https://blog.csdn.net/Tingfeng ... 17465
5、【Elasticsearch】 复合查询
https://blog.csdn.net/lilinhai ... 82306
编辑:Muse
更多资讯:http://news.searchkit.cn
搜索客社区日报 第1973期 (2025-01-16)
社区日报 • Se7en 发表了文章 • 0 个评论 • 1975 次浏览 • 2025-01-16 12:18
https://mp.weixin.qq.com/s/SkJH5rB-3XcVy-Zc5QcQGQ
2.揭秘DeepSeek:一个更极致的中国技术理想主义故事
https://mp.weixin.qq.com/s/r9zZaEgqAa_lml_fOEZmjg
3.带你了解: Elastic Serverless如何在全球范围内协调工作负载
https://mp.weixin.qq.com/s/xo0nVVHYQhn5vCBKytwIvg
4.AI 开发者视角:2024 年大模型基础设施与中间件工具链生态演进
https://mp.weixin.qq.com/s/LmrIzUzI7hIEQLwLK8AoqA
编辑:Se7en
更多资讯:http://news.searchkit.cn
搜索客社区日报 第1972期 (2025-01-15)
社区日报 • kin122 发表了文章 • 0 个评论 • 1993 次浏览 • 2025-01-15 21:48
https://mp.weixin.qq.com/s/38HiPOOKVKz3C76d_SGkmw
2.怎么去评估可搜索快照的性能
https://blog.csdn.net/UbuntuTo ... 31200
3.Elasticsearch:Lucene 2024 年回顾
https://blog.csdn.net/UbuntuTo ... 92339
编辑:kin122
更多资讯:http://news.searchkit.cn
有什么 es 开源工具可以推荐使用
Elasticsearch • INFINI Labs 小助手 回复了问题 • 2 人关注 • 1 个回复 • 2104 次浏览 • 2025-01-15 14:48
【直播预告】第6期 搜索客 Meetup | Easysearch 请求限速漫谈 2025-01-17 19:00
资讯动态 • searchkit 发表了文章 • 0 个评论 • 2155 次浏览 • 2025-01-14 18:23
本次活动由 搜索客社区、极限科技(INFINI Labs)联合举办,活动邀请到 INFINI Labs 高级解决方案架构师 **杨帆** 老师给大家带来精彩分享,欢迎预约直播观看~
活动主题:**Easysearch 请求限速漫谈**
活动时间:**2025 年 01 月 17 日 19:00-20:00(周三)**
活动形式:**微信视频号(极限实验室)直播**
报名方式:**关注或扫码海报中的二维码进行预约**
![](https://infinilabs.cn/img/blog ... /1.png)
## 嘉宾介绍
**杨帆**,极限科技(INFINI Labs)高级解决方案架构师、《老杨玩搜索》栏目 B 站 UP 主,拥有十余年金融行业服务工作经验,熟悉 Linux、数据库、网络等领域。目前主要从事 Easysearch、Elasticsearch 等搜索引擎的技术支持工作,服务国内私有化部署的客户。
## 主题摘要
将和大家一起畅谈,为什么要限速,最早是怎样提出这个需求来的?对读请求限速我们能做什么?对写请求限速我们能做什么?
## 参与有奖
本次直播活动将设有福袋抽奖环节,参与就有机会获得 INFINI Labs 周边纪念品,包括 T 恤、鸭舌帽、咖啡杯、指甲刀套件、精品围巾等等(图片仅供参考,款式、颜色与尺码随机)。
![](https://infinilabs.cn/img/blog ... ts.png)
## 活动交流
本活动设有 Meetup 技术交流群,可添加小助手微信拉群,与更多小伙伴一起学习交流。
![](https://infinilabs.cn/img/comp ... at.jpg)
## Meetup 讲师招募
![](https://infinilabs.cn/img/blog ... ng.png)
搜索客社区 Meetup 的成功举办,离不开社区小伙伴的热情参与。目前社区讲师招募计划也在持续进行中,我们诚挚邀请各位技术大咖、行业精英踊跃提交演讲议题,与大家分享您的经验。
讲师报名链接:[http://cfp.searchkit.cn](http://cfp.searchkit.cn)
或扫描下方二维码,立刻报名成为讲师!
![](https://infinilabs.cn/img/blog ... de.jpg)
Meetup 活动聚焦 AI 与搜索领域的最新动态,以及数据实时搜索分析、向量检索、技术实践与案例分析、日志分析、安全等领域的深度探讨。
我们热切期待您的精彩分享!
## 往期回顾
- [【第 5 期】搜索客 Meetup | 最强开源 Elasticsearch 多集群管理工具 INFINI Console 动手实战](https://infinilabs.cn/blog/2024/searchkit-meetup-5/)
- [【第 4 期】搜索客 Meetup | INFINI Pizza 网站 SVG 动画这么炫,我教你啊!](https://infinilabs.cn/blog/2024/searchkit-meetup-4/)
- [【第 3 期】搜索客 Meetup | Elasticsearch 的代码结构和写入查询流程的解读 - 下篇](https://infinilabs.cn/blog/2024/searchkit-meetup-3/)
- [【第 2 期】搜索客 Meetup | Elasticsearch 的代码结构和写入查询流程的解读 - 上篇](https://infinilabs.cn/blog/2024/searchkit-meetup-2/)
- [【第 1 期】搜索客 Meetup | Easysearch 结合大模型实现 RAG](https://infinilabs.cn/blog/2024/searchkit-meetup-1/)
## 关于 搜索客(SearchKit)社区
搜索客社区由 Elasticsearch 中文社区进行全新的品牌升级,以新的 Slogan:“搜索人自己的社区” 为宣言。汇集搜索领域最新动态、精选干货文章、精华讨论、文档资料、翻译与版本发布等,为广大搜索领域从业者提供更为丰富便捷的学习和交流平台。
社区官网:[https://searchkit.cn](https://searchkit.cn) 。
【搜索客社区日报】第1971期 (2024-01-14)
社区日报 • God_lockin 发表了文章 • 0 个评论 • 2122 次浏览 • 2025-01-14 13:31
https://medium.com/life-at-apo ... 6dcd1
2. 咋把PG的数据撸进ES啊(需要梯子)
https://medium.com/%40techphil ... f124a
3. 我们是怎么让ES集群扛住上百万次访问的(需要梯子)
https://medium.com/%40jeevansa ... a5e40
编辑:斯蒂文
更多资讯:http://news.searchkit.cn
如何在 Easysearch 中使用 Rollup 优化时序数据的存储和查询
Easysearch • INFINI Labs 小助手 发表了文章 • 0 个评论 • 2165 次浏览 • 2025-01-14 10:05
## 背景
在现代数据驱动的世界中,时序数据的处理变得越来越重要。无论是监控系统、日志分析,还是物联网设备的数据收集,时序数据都占据了大量的存储空间。随着时间的推移,这些数据的存储成本和管理复杂度也在不断增加。
为了解决这一问题,**Rollup** 技术应运而生。本文将带你深入了解 Rollup 的概念、优势以及如何在 Easysearch 中使用 Rollup 来优化时序数据的存储和查询。
---
## 什么是 Rollup?
Rollup 是一种数据聚合技术,主要用于处理时序数据。它通过将细粒度的原始数据汇总为粗粒度的数据,从而减少存储空间并提高查询效率。简单来说,Rollup 可以将大量的详细数据压缩为更小的、更具代表性的数据集,同时保留关键的业务指标。
### Rollup 的优势
1. **降低存储成本**:通过汇总数据,Rollup 可以显著减少历史数据的存储空间,从而降低存储成本。
2. **提高查询性能**:汇总后的数据量更小,查询速度更快,尤其是在处理大规模历史数据时,性能提升尤为明显。
3. **无缝集成**:Easysearch 的 Rollup 功能支持直接查询原始索引,业务代码无需修改,用户无感知。
4. **自动化管理**:Rollup 任务可以自动滚动生成新的索引,无需手动干预,简化了数据管理流程。
---
## Rollup 的使用场景
Rollup 特别适用于以下场景:
- **监控系统**:监控系统产生的指标数据通常非常详细,但随着时间推移,这些数据的价值逐渐降低。通过 Rollup,可以将这些数据汇总为更粗粒度的指标,保留关键信息的同时减少存储压力。
- **日志分析**:日志数据通常包含大量的细节信息,但随着时间的推移,这些细节信息的重要性逐渐降低。Rollup 可以帮助你将日志数据汇总为更高层次的统计信息,便于长期存储和分析。
- **物联网数据**:物联网设备产生的数据量巨大,且大部分数据在短期内具有较高的分析价值。通过 Rollup,可以将这些数据汇总为更粗粒度的形式,便于长期存储和查询。
---
## 使用 Rollup 的先决条件
在使用 Rollup 之前,需要满足以下条件:
安装索引生命周期管理插件:Rollup 功能是索引生命周期管理插件的一部分,因此必须安装该插件。
源索引必须包含 date 类型字段:Rollup 依赖于时间字段来进行数据聚合,因此源索引必须包含一个 date 类型的字段。
## Easysearch 中的 Rollup 功能
Easysearch 提供了强大的 Rollup 功能,支持多种聚合类型,并且可以自动滚动生成新的索引。下面我们将详细介绍如何在 Easysearch 中使用 Rollup。
### 支持的聚合类型
Easysearch 的 Rollup 功能支持以下聚合类型:
- **数值类型字段**:`avg`、`sum`、`max`、`min`、`value_count`、`percentiles`
- **keyword 类型字段**:`terms` 聚合
- **date 类型字段**:`date_histogram` 和 `date_range` 聚合
---
## Rollup 的核心参数详解
在配置 Rollup 任务时,以下几个参数至关重要:
### 1. **`metrics` 参数:定义需要聚合的数值字段**
`metrics` 参数用于指定哪些数值字段需要进行聚合计算。Rollup 任务会对这些字段进行指定的聚合操作(如 `avg`、`sum`、`max`、`min`、`value_count`、`percentiles`),并将结果存储到目标索引中。
#### 示例:
```json
"metrics": [
"payload.elasticsearch.index_stats.*"
]
```
在这个例子中,`metrics` 指定了对 `payload.elasticsearch.index_stats` 下的所有字段进行聚合。
---
### 2. **`attributes` 参数:保留原始数据的非聚合字段**
`attributes` 参数用于指定哪些字段需要原封不动地保留在 Rollup 结果中。这些字段不会被聚合,而是直接复制到目标索引中。
#### 示例:
```json
"attributes": [
"agent.*",
"metadata.*"
]
```
在这个例子中,`attributes` 指定了所有以 `agent.` 和 `metadata.` 开头的字段都会被保留到 Rollup 结果中。
---
### 3. **`exclude` 参数:排除不需要处理的字段**
`exclude` 参数用于排除某些字段,使其不参与 Rollup 任务。这些字段既不会被聚合,也不会被保留到目标索引中。
#### 示例:
```json
"exclude": ["payload.elasticsearch.index_stats.routing.*"]
```
在这个例子中,`exclude` 指定了 `payload.elasticsearch.index_stats.routing` 下的所有字段都不会被处理。
---
### 4. **`filter` 参数:过滤源数据**
`filter` 参数用于过滤源数据,只有符合过滤条件的文档才会被 Rollup 任务处理。这个参数可以帮助你减少需要处理的数据量,从而提高 Rollup 任务的效率。
#### 示例:
```json
"filter": {
"metadata.name": "index_stats"
}
```
在这个例子中,`filter` 指定了只有 `metadata.name` 字段值为 `index_stats` 的文档才会被 Rollup 任务处理。
---
### 5. **`identity` 参数:定义分组字段**
`identity` 参数用于指定哪些字段作为分组条件。Rollup 任务会根据这些字段的值对数据进行分组,然后在每个分组内进行聚合计算。
#### 功能:
- 定义数据分组的字段。
- 支持多个字段的组合,用于创建唯一的分组键。
- 常用于标识数据的来源或类别。
#### 示例:
```json
"identity": [
"metadata.labels.cluster_id",
"metadata.labels.index_id",
"metadata.labels.index_name",
"metadata.category",
"payload.elasticsearch.index_stats.index_info.health"
]
```
在这个例子中,`identity` 指定了多个字段作为分组条件。Rollup 任务会根据这些字段的值对数据进行分组,然后在每个分组内进行聚合计算。
---
### 6. **`interval` 参数:定义时间聚合间隔**
`interval` 参数用于指定时间聚合的间隔。Rollup 任务会根据这个间隔将数据按时间分桶,然后在每个时间桶内进行聚合计算。
#### 功能:
- 定义时间聚合的粒度。
- 支持多种时间单位,如 `1m`(1 分钟)、`1h`(1 小时)、`1d`(1 天)等。
- 常用于按时间维度汇总数据。
#### 示例:
```json
"interval": "1m"
```
在这个例子中,`interval` 指定了时间聚合的间隔为 1 分钟。Rollup 任务会每分钟对数据进行一次聚合。
---
## 1.10 版本的新特性
从 Easysearch 1.10.0 版本开始,Rollup 功能引入了一些新特性,进一步增强了其灵活性和易用性。
### 1. **支持 `date_range` 聚合**
在 1.10.0 版本中,Rollup 增加了对 原始索引使用 `date_range` 聚合的支持。这意味着你可以在原始索引根据日期范围对数据进行聚合,而不仅仅是固定的时间间隔。
#### 示例:
```json
"date_range": {
"field": "@timestamp",
"ranges": [
{ "from": "now-1d/d", "to": "now" },
{ "from": "now-7d/d", "to": "now-1d/d" }
]
}
```
---
### 2. **通配符方式批量启动/停止 Rollup Job**
在 1.10.0 版本中,你可以使用通配符批量启动或停止 Rollup 任务。这大大简化了任务管理的操作。
#### 示例:
```json
POST _rollup/jobs/rollup*/_start
POST _rollup/jobs/rollup*/_stop
```
---
### 3. **设置 Rollup 索引自动滚动的条数**
你可以通过设置 `rollup.max_docs` 参数,控制 Rollup 索引自动滚动的条数。当索引中的文档数量达到设定值时,系统会自动创建一个新的 Rollup 索引。
#### 示例:
```json
PUT /_cluster/settings
{
"transient": {
"rollup.max_docs": 10000000
}
}
```
---
### 4. **新增 `ROLLUP_SEARCH_MAX_COUNT` 配置**
在 1.10.0 版本中,新增了 `ROLLUP_SEARCH_MAX_COUNT` 配置项,用于控制 Rollup 在运行 Job 时收集历史数据的最大并发分片请求数。这个配置项可以帮助你优化 Rollup 任务的性能,并避免集群资源过载。
#### 功能:
- **控制并发请求数**:限制 Rollup 任务在执行搜索请求时的最大并发分片请求数。
- **动态调整**:支持在集群运行时动态调整,无需重启集群。
- **默认值**:`2`,即默认情况下,Rollup 任务最多会同时发送 2 个并发分片请求。
#### 示例:
```json
PUT /_cluster/settings
{
"transient": {
"rollup.search.max_count": 2
}
}
```
在这个例子中,`ROLLUP_SEARCH_MAX_COUNT` 被设置为 `2`,表示 Rollup 任务在执行搜索请求时,最多会同时发送 2 个并发分片请求。
#### 配置建议:
- **小规模集群**:建议设置为较小的值(如 `2`),以避免资源竞争。
- **大规模集群**:可以适当增加该值(如 `4`),以提高并发性能。
- **动态调整**:根据集群负载情况动态调整该值,以优化性能和资源利用率。
---
## 创建 Rollup 任务的完整示例
以下是一个完整的 Rollup 任务配置示例,展示了 `metrics`、`attributes`、`exclude` 和 `filter` 参数的综合使用:
```auto
PUT _rollup/jobs/rollup1
{
"rollup": {
"source_index": ".infini_metrics",
"target_index": "rollup1_{{ctx.source_index}}",
"timestamp": "timestamp",
"continuous": true,
"page_size": 1000,
"cron": "*/10 1-23 * * *",
"timezone": "UTC+8",
"stats": [
{
"max": {}
},
{
"value_count": {}
}
],
"interval": "1m",
"identity": [
"metadata.labels.cluster_id",
"metadata.labels.index_id",
"metadata.labels.index_name",
"metadata.category",
"payload.elasticsearch.index_stats.index_info.health"
],
"attributes": [
"agent.*",
"metadata.*"
],
"metrics": [
"payload.elasticsearch.index_stats.*"
],
"exclude": ["payload.elasticsearch.index_stats.routing.*"],
"filter": {
"metadata.name": "index_stats"
}
}
}
```
---
## 如何使用 Rollup 索引
从 1.10.0 版本开始,索引生命周期插件不再默认启用 rollup 搜索功能,如果想使用搜索 rollup 搜索功能,需要设置
```auto
PUT /_cluster/settings
{
"transient": {
"rollup.search.enabled": true
}
}
```
无需特意搜索 rollup 索引,只需使用标准的 \_search API 对原始目标索引进行搜索。需要注意的是,查询时必须符合目标索引的约束条件。
以下是一个使用 Rollup 索引的示例:
```auto
GET target-test/_search
{
"size": 0,
"aggs": {
"a": {
"date_histogram": {
"field": "@timestamp",
"fixed_interval": "1h"
}
},
"total_passenger_count": {
"sum": {
"field": "passenger_count"
}
}
}
}
```
---
## 总结
Rollup 是处理时序数据的强大工具,能够有效降低存储成本并提高查询性能。Easysearch 的 Rollup 功能不仅支持多种聚合类型,还提供了自动滚动索引、无缝查询等特性,极大地简化了时序数据的管理和分析流程。通过合理配置 `metrics`、`attributes`、`exclude` 和 `filter` 参数,你可以灵活地控制 Rollup 任务的行为,从而高效地处理时序数据。
如果你正在处理大量的时序数据,不妨尝试使用 Rollup 来优化你的数据存储和查询。通过本文的介绍,相信你已经对 Rollup 有了深入的了解。赶快动手试试吧,体验 Rollup 带来的高效与便捷!
**更详细的使用文档可在 [官网](https://www.infinilabs.cn/docs ... p_api/) 查看**
## 关于 Easysearch
![](https://infinilabs.cn/img/blog ... er.png)
INFINI Easysearch 是一个分布式的搜索型数据库,实现非结构化数据检索、全文检索、向量检索、地理位置信息查询、组合索引查询、多语种支持、聚合分析等。Easysearch 可以完美替代 Elasticsearch,同时添加和完善多项企业级功能。Easysearch 助您拥有简洁、高效、易用的搜索体验。
官网文档:<https://infinilabs.cn/docs/latest/easysearch>
> 作者:张磊,极限科技(INFINI Labs)搜索引擎研发负责人,对 Elasticsearch 和 Lucene 源码比较熟悉,目前主要负责公司的 Easysearch 产品的研发以及客户服务工作。