提问:布和纸怕什么?

Easysearch 集群通过 API 进行用户密码重置

EasysearchINFINI Labs 小助手 发表了文章 • 0 个评论 • 3131 次浏览 • 2025-02-07 17:52 • 来自相关话题



在日常使用 Easysearch 中,难免会遇到集群密码需要重置的情况(如密码遗失、安全审计要求等)。

通过查看 Easysearch [用户](https://infinilabs.cn/docs/lat ... pi%23创建用户)接口文档,创建用户使用如下接口:

```json
PUT _security/user/
{
"password": "adminpass",
"roles": ["maintenance_staff", "weapons"],
"external_roles": ["captains", "starfleet"],
"attributes": {
"attribute1": "value1",
"attribute2": "value2"
}
}
```

同样可以通过该接口对用户进行密码重置:

```json
PUT _security/user/
{
"password": "adminpass111",
"roles": ["maintenance_staff", "weapons"],
"external_roles": ["captains", "starfleet"],
"attributes": {
"attribute1": "value1",
"attribute2": "value2"
}
```

## API 接口创建的用户

创建一个测试用户 test,并进行访问验证。

![](https://infinilabs.cn/img/blog ... /1.png)

通过接口重置用户 test 密码,并进行访问验证。

![](https://infinilabs.cn/img/blog ... /2.png)

## 配置文件创建的用户

在配置文件 `user.yml` 中添加测试用户(test1、test2)配置:

```yaml
## Test users
test1:
hash: "$2y$12$ZNfKKCeeRQXOWX27W50tbu0Tq4NT4ADdCQOBoZzokI1zR8ZEUWm4W" # test1
reserved: true
roles:
- "readall_and_monitor"

test2:
hash: "$2y$12$m4/eSiDlzRII87vNeKwzteEHGpgpbdMr5tRvOfve/xIbEYdC4bU7a" # test2
reserved: false
roles:
- "readall_and_monitor"
```

其中 `hash` 字段是将用户密码哈希出来的值,可通过 `bin/hash_password.sh -p "<明文密码>"` 生成。

进行用户访问验证。

![](https://infinilabs.cn/img/blog ... /3.png)

对 test1、test2 用户进行密码重置。

![](https://infinilabs.cn/img/blog ... /4.png)

用户 test1 重置失败,用户 test2 重置成功。用户 test1 重置失败是因为配置了 `reserved: true`,将用户 test1 指定为内置用户,使用用户 admin 会因为权限无法进行密码重置,那就需要使用有更高权限的[管理证书](https://infinilabs.cn/docs/lat ... ls%23配置管理证书)进行密码重置。默认在 Easysearch 集群执行初始化脚本 `bin/initialize.sh` 时,会在 `config` 目录下生成证书文件,其中 `admin.crt`、`admin.key` 为管理证书。

![](https://infinilabs.cn/img/blog ... /5.png)

test1 用户密码重置成功,进行访问验证。

![](https://infinilabs.cn/img/blog ... /6.png)

## 关于 Easysearch

![](https://infinilabs.cn/img/blog ... er.png)

INFINI Easysearch 是一个分布式的搜索型数据库,实现非结构化数据检索、全文检索、向量检索、地理位置信息查询、组合索引查询、多语种支持、聚合分析等。Easysearch 可以完美替代 Elasticsearch,同时添加和完善多项企业级功能。Easysearch 助您拥有简洁、高效、易用的搜索体验。

官网文档:<https://infinilabs.cn/docs/latest/easysearch>

如何使用 Filebeat 8 连接 Easysearch

Easysearchyangmf2040 发表了文章 • 0 个评论 • 2885 次浏览 • 2025-02-07 12:02 • 来自相关话题

在日志场景,还是有很多小伙伴在使用 Filebeat 采集日志的。今天我来实战下使用 Filebeat 8 连接 Easysearch 。本次使用 Easysearch-1.9.0 版本和 Filebeat-8.17.0 版本做演示,也适用 Filebeat-oss-8.17.0 版本。

Easysearch 不开启兼容参数的情况

Easysearch 默认情况下未开启 Elastic 兼容功能。此时直接用 Filebeat 去连接 Easysearch 会失败,报错 "could not connect to a compatible version of Elasticsearch" ,直译过来就是“无法连接到兼容的 Elasticsearch 版本”。

![](https://infinilabs.cn/img/blog ... /1.png)

Easysearch 开启 elasticsearch.api_compatibility 参数

在 Easysearch-1.9.0 中关于 Elasticsearch 的兼容性参数有两个,我们先开第一个。

```plain
elasticsearch.api_compatibility: true

elasticsearch.api_compatibility_version: "8.9.0"

<br /> <br /> 启动 Filebeat 连接。<br /> <br /> ![](<a href="https://infinilabs.cn/img/blog/2025/filebeat-8-connect-easysearch/2.pn" rel="nofollow" target="_blank">https://infinilabs.cn/img/blog ... /2.pn</a>g)<br /> <br /> 这次 Filebeat 检测到了一个兼容的版本 7.10.2,并导入了一个叫 filebeat 的索引生命周期管理策略,但最终因为无法导入模板而失败了。<br /> <br /> 索引生命周期查看。<br /> <br /> ![](<a href="https://infinilabs.cn/img/blog/2025/filebeat-8-connect-easysearch/3.pn" rel="nofollow" target="_blank">https://infinilabs.cn/img/blog ... /3.pn</a>g)<br /> <br /> **关闭 Filebeat 的导入模板功能尝试连接**,修改配置 filebeat.yml 关闭模板导入。<br /> <br /> ![](<a href="https://infinilabs.cn/img/blog/2025/filebeat-8-connect-easysearch/4.pn" rel="nofollow" target="_blank">https://infinilabs.cn/img/blog ... /4.pn</a>g)<br /> <br /> plain
setup.template.enabled: false
```

启动 Filebeat 连接 Easysearch。

![](https://infinilabs.cn/img/blog ... /5.png)

这次 Filebeat 成功连接上了 Easysearch,并成功将采集数据写入。

![](https://infinilabs.cn/img/blog ... /6.png)

Easysearch 同时开启两个兼容性参数

在 Easysearch-1.9.0 中关于 Elasticsearch 的兼容性参数有两个,这次我们二个同时打开。

plain<br /> elasticsearch.api_compatibility: true<br /> elasticsearch.api_compatibility_version: "8.9.0"<br />

清理测试数据后,启动 Filebeat 连接。

![](https://infinilabs.cn/img/blog ... /7.png)

跟打开第一个兼容参数很像,只是 Filebeat 检测到的版本变成了 8.9.0。

我们关闭 Filebeat 的模板导入功能,再次连接——成功

![](https://infinilabs.cn/img/blog ... /8.png)

数据也成功写入。

![](https://infinilabs.cn/img/blog ... /9.png)

注意事项

Easysearch 的第一个兼容参数 elasticsearch.api_compatibility 必须开启,否则 Filebeat 检测到的还是 1.9.0 版本无法正常连接。

如果 Easysearch 使用的是 1.9.0 之前的版本,可以使用[网关代理 Easysearch 的方法](https://infinilabs.cn/blog/202 ... earch/)。

总结

Easysearch-1.9.0 必须开启第一个兼容参数,此时检测到的版本是 7.10.2。也可同时开启两个兼容性参数,此时检测到的版本是 8.9.0。

Filebeat 必须关闭模板导入功能。

好了,还有其他问题的小伙伴,欢迎加我微信沟通。

如何使用 Logstash 8 连接 Easysearch

Easysearchyangmf2040 发表了文章 • 0 个评论 • 2891 次浏览 • 2025-02-06 20:11 • 来自相关话题

背景

很多小伙伴都在使用 Logstash ,随着各家安全扫描、安全策略的加固,不少小伙伴已经开始使用 Logstash 8 了。在使用 Logstash 8 连接 Easysearch 的时候可能会遇到问题,比如下图。

![](https://www.infinilabs.com/img ... /1.png)

提示连接的不是兼容版本的 Elasticsearch 。

解决方法有两种


两种方法对 Logstash 和 Logstash-oss 两种版本都适用。

一、用 INFINI Gateway 代理 Easysearch


使用此方法, Logstash 连接的是 INFINI Gateway ,由 INFINI Gateway “通过” Logstash 8 的检查。

优点是对 Easysearch 版本无要求。

默认的网关配置要稍作修改。

  1. 修改 router.rules 部分

    ```plain
    router:
    • name: my_router
      default_flow: default_flow
      tracing_flow: logging_flow
      rules:
      • method:
        • "GET"
          pattern:
        • "/"
          flow:
        • overwrite_flow
      • method:
        • "GET"
          pattern:
        • "/_license"
          flow:
        • overwrite_license_flow
      • method:
        • "*"
          pattern:
        • "/_bulk"
        • "/{any_index}/_bulk"
          flow:
        • async_bulk_flow
          ```

  2. flow 下增加 overwrite_flow 和 overwrite_license_flow

    ```plain
    • name: overwrite_flow
      filter:
      • elasticsearch:
        elasticsearch: prod
        max_connection_per_node: 1000
      • set_context:
        context:
        _ctx.response.body_json.version.number: '"8.14.3"'
        _ctx.response.body_json.version.build_flavor: '"default"'
        _ctx.response.body_json.tagline: '"You Know, for Search"'
        _ctx.response.body_json.minimum_wire_compatibility_version: '"7.17.0"'
        _ctx.response.body_json.minimum_index_compatibility_version: '"7.0.0"'
      • set_response_header:
        headers:
        • X-elastic-product -> Elasticsearch
    • name: overwrite_license_flow
      filter:
      • echo:
        message: '{"license": "ok"}'
      • set_context:
        context:
        _ctx.response.code: 200
        _ctx.response.body_json.license.status: '"active"'
        _ctx.response.body_json.license.type: '"basic"'
        _ctx.response.body_json.license.issuer: '"elasticsearch"'
        _ctx.response.body_json.license.issue_date: '"2024-09-12T13:10:55.848Z"'
        _ctx.response.body_json.license.start_date_in_millis: "-1"
      • set_response_header:
        headers:
        • X-elastic-product -> Elasticsearch
          ```

          记住 Logstash 要填写 INFINI Gateway 的地址和端口,并关闭自动导入模板功能。

          ![](https://www.infinilabs.com/img ... /2.png)

          连接成功后,如下图。

          ![](https://www.infinilabs.com/img ... /3.png)

          二、使用 Easysearch 1.9.0 及以上版本


          Easysearch 1.9.0 已经增加了适配 Logstash8.x 的请求 header,因此使用 Easysearch 1.9.0 的小伙伴,只需打开对应的设置就可以了。

          ![](https://www.infinilabs.com/img ... /4.png)

          在 easysearch.yml 中,打开下面的 elastic 的兼容参数(默认已注释):

          plain<br /> elasticsearch.api_compatibility: true<br /> elasticsearch.api_compatibility_version: "8.9.0"<br />

          注意 Logstash 配置中关闭自动导入模板功能。

          ![](https://www.infinilabs.com/img ... /5.png)

          plain<br /> output {<br /> elasticsearch {<br /> hosts => ["<a href="http://127.0.0.1:9200"" rel="nofollow" target="_blank">http://127.0.0.1:9200"</a>]<br /> index => "logstash8"<br /> manage_template => false<br /> }<br /> }<br />

          启动 Logstash 连接到 easysearch 后, Logstash 日志会输出检测到版本 8.9.0 。

          ![](https://www.infinilabs.com/img ... /6.png)

          最新 Easysearch 下载地址:[下载](https://infinilabs.cn/download/)

          好了,还有其他问题的小伙伴,欢迎加我微信沟通。

搜索客社区日报 第1980期 (2025-01-28)

社区日报God_lockin 发表了文章 • 0 个评论 • 3547 次浏览 • 2025-01-28 18:16 • 来自相关话题

朋友们新年好啊,年夜饭吃没?

1. deepseek-r1的地址,懂得都懂
https://github.com/deepseek-ai/DeepSeek-R1

2. 用ELK对Nodejs进行日志记录(需要梯子)
https://medium.com/%40arnabgol ... 3915c

3. 搜索记录小技巧 _name(需要梯子)
https://medium.com/%40andre.lu ... 8daa0

编辑:斯蒂文
更多资讯:http://news.searchkit.cn

搜索客社区日报 第1979期 (2025-01-27)

社区日报Muses 发表了文章 • 0 个评论 • 3539 次浏览 • 2025-01-27 14:25 • 来自相关话题

1、在 Ubuntu 22.04 上运行 Filebeat 7.10.2
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 个评论 • 3556 次浏览 • 2025-01-26 13:01 • 来自相关话题



![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 个评论 • 3527 次浏览 • 2025-01-25 08:54 • 来自相关话题

2025 年 01 月 17 日,由搜索客社区和极限科技(INFINI Labs)联合举办的第 6 期线上 Meetup 技术交流直播活动圆满结束。本期 Meetup 直播活动吸引了超过 500+ 人次的技术爱好者观看参与,主要讨论了 Easysearch、Easysearch 搜索引擎性能优化和系统稳定性的相关问题,包括读请求限速、写请求限速、索引管控等。

PPT首页.png




本期 Meetup 活动主题


本期 Meetup 活动由 极限科技(INFINI Labs)高级解决方案架构师 杨帆老师 为大家带来了主题为 《Easysearch 请求限速漫谈》 精彩分享。和大家一起畅谈了为什么要限速,限速的需求来源,以及读写限速的实现方式等。

以下为摘取 PPT 部分内容截图:

1.jpg



2.jpg



3.jpg



4.jpg




活动中杨老师和大家保持互动问答,在线观众积极参与。同时,在整个直播过程中,主持人进行了多轮激动人心的抽奖活动,为参会小伙伴带来了额外的惊喜。

最后感谢大家的参与和支持,让我们共同期待下一次 搜索客 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 个评论 • 3622 次浏览 • 2025-01-24 15:20 • 来自相关话题

1、Elasticsearch VS Easysearch 性能测试
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 个评论 • 3089 次浏览 • 2025-01-23 23:16 • 来自相关话题

1.AI编程双城记上:万字长文剖析下一代技术革命与落地挑战
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 个评论 • 3276 次浏览 • 2025-01-22 21:49 • 来自相关话题

1.在 HNSW 中实现“提前终止”以加速近似 KNN 搜索
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 个评论 • 3273 次浏览 • 2025-01-21 16:41 • 来自相关话题

 1. 用ES配合docker做个股票监控系统咋样(需要梯子)
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 性能测试

Easysearchyangmf2040 发表了文章 • 0 个评论 • 3178 次浏览 • 2025-01-21 16:41 • 来自相关话题

压测环境


虚拟机配置


使用阿里云上规格:[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)

搜索客社区日报 第1974期 (2025-01-20)

社区日报Muses 发表了文章 • 0 个评论 • 2997 次浏览 • 2025-01-21 16:13 • 来自相关话题

1、一文彻底讲透GPT架构及推理原理
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 个评论 • 3725 次浏览 • 2025-01-16 12:18 • 来自相关话题

1.黄东旭:2025 数据库技术展望
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 个评论 • 3601 次浏览 • 2025-01-15 21:48 • 来自相关话题

1.MCP Server 开发实战:无缝对接 LLM 和 Elasticsearch
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