居然是你

【搜索客社区日报】第2075期 (2024-07-15)

社区日报God_lockin 发表了文章 • 0 个评论 • 162 次浏览 • 15 小时前 • 来自相关话题


1. 让老司机来给你讲讲结果折叠那些事儿(需要梯子)
https://medium.com/%40imadsadd ... 90485
2. 10亿记录一秒返回,干就完了(需要梯子)
https://medium.com/%40ApacheDo ... e3a12
3. 我在Trendyol我们是这样用ES做聚合的(需要梯子)
https://medium.com/trendyol-te ... 1c4b2
编辑:斯蒂文
更多资讯:http://news.searchkit.cn
 

TDBC 2025 可信数据库发展大会,极限科技邀您来赴约!

活动INFINI Labs 小助手 发表了文章 • 0 个评论 • 251 次浏览 • 1 天前 • 来自相关话题

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

2025 年 7 月 16-17 日,「TDBC 2025 可信数据库发展大会」将在北京朝阳悠唐皇冠假日酒店隆重召开。大会由中国通信标准化协会主办,中国信息通信研究院、中国通信标准化协会大数据技术标准推进委员会(CCSA TC601)承办。

本次大会 极限科技 再度受邀,创始人兼总经理曾勇、联合创始人曾嘉毅 将分别于「人工智能与数据库融合发展分论坛」、「数据库生态及国际化分论坛」发表主题演讲,与大家共同探讨 AI 与企业搜索融合发展的技术突破和应用实践,以及企业搜索的发展新方向与海外市场开拓。与此同时我们也特设 展台(展位号 B09) 和大家线下相见!

演讲主题一:《重构信息获取方式:下一代企业搜索与 AI 的融合探索》

![](https://infinilabs.cn/img/blog ... cl.jpg)

演讲主题二:《搜索型数据库生态建设和展望》

![](https://infinilabs.cn/img/blog ... jy.jpg)

展位福利

除了精彩演讲,极限科技专家团队将于 B09 (记住展位号,不迷路!)与大家近距离交流。大家可以深入了解搜索型数据库与 AI 搜索的产品技术、行业解决方案,并与技术专家一对一探讨实际业务场景中的搜索应用问题。

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

此外,我们还精心准备了多款 INFINI Labs 定制周边礼品,只要来到展位参与互动就有机会获得,真诚欢迎各位新老朋友前来 B09 展位打卡交流!

大会议程

[2025 可信数据库发展大会全议程公布!](https://mp.weixin.qq.com/s/W80_IpqmAD8jnDNvVQoOZA)

关于极限科技(INFINI Labs)

![INFINI Labs](https://infinilabs.cn/img/blog ... bs.png)

极限科技,全称极限数据(北京)科技有限公司,是一家专注于实时搜索与数据分析的软件公司。旗下品牌极限实验室(INFINI Labs)致力于打造极致易用的数据探索与分析体验。

极限科技是一支年轻的团队,采用天然分布式的方式来进行远程协作,员工分布在全球各地,希望通过努力成为中国乃至全球企业大数据实时搜索分析产品的首选,为中国技术品牌输出添砖加瓦。

官网:<https://infinilabs.cn>;

【搜索客社区日报】第2074期 (2025-07-14)

社区日报Muses 发表了文章 • 0 个评论 • 352 次浏览 • 1 天前 • 来自相关话题

1、安全领域的 AI 采用:主要用例和需避免的错误
https://elasticstack.blog.csdn ... 73363

2、使用 Maximum Marginal Relevance 实现搜索结果多样化
https://elasticstack.blog.csdn ... 69341

3、上下文更长 ≠ 更好:为什么 RAG 仍然重要
https://elasticstack.blog.csdn ... 88509

4、Logstash 9.x 与早期版本差异及常见问题解决方案
https://mp.weixin.qq.com/s/08dzlC5wKsfi_5JkaSN26Q

5、ChatBI:让数据分析像聊天一样简单!
https://mp.weixin.qq.com/s/W8sEEIphNE7ot5T2oY5qVA

编辑:Muse
更多资讯:http://news.searchkit.cn

极限科技荣获 2025 上海开源创新菁英荟「开源创新新星企业」奖

资讯动态INFINI Labs 小助手 发表了文章 • 0 个评论 • 459 次浏览 • 2 天前 • 来自相关话题

2025 年 6 月 28 日,由上海开源信息技术协会主办、上海对外经贸大学承办的“[2025 上海开源创新菁英荟](https://mp.weixin.qq.com/s/7DK4r_kz33c3xxtgNGjBuQ)”圆满落幕。本届大会以“开源有 AI,智领千行”为主题,汇聚开源社区、科研机构及产业界 200 余位专家,共同探讨开源技术如何赋能千行百业智能化转型。会上揭晓了四大类奖项,极限科技凭借其开源项目 Coco AI 脱颖而出,荣获「开源创新新星企业」奖项,得到了行业权威认可。

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

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

统一搜索 + 私有部署,Coco AI 直击企业三大痛点


现代企业面临数据分散、安全风险高、知识利用率低三大核心痛点。Coco AI 作为一款完全开源、跨平台的企业级智能搜索与助手系统,通过三大创新解决行业难题:

  1. 统一搜索入口,跨平台连接数据
    支持连接本地文件、云存储(S3)、协作工具(Notion、Google Workspace)、知识平台(语雀)、代码仓库(GitHub)等多种数据源,实现一站式搜索与信息聚合。
  2. 私有化部署,保障数据安全
    完全开源且支持自主可控部署,数据全程留存于企业内网,满足高安全、高合规场景需求。
  3. 融合大模型,构建智能助手
    接入 DeepSeek、通义千问等先进大模型,支持语义理解、自然语言问答、智能推荐,激活沉睡数据,打造真正“会思考”的企业知识中枢。

    开源生态赋能,推动 AI 普惠化


    作为国内少数以搜索技术为核心的初创企业,极限科技始终践行“让搜索更简单”的使命。其开源项目 Coco AI(MIT 许可证)允许自由修改与分发,服务端(AGPL-3.0)要求公开源代码以确保合规,降低企业使用门槛。通过开源生态与 AI 技术,将企业离散数据转化为可搜索、可问答、可决策的活资产。

    未来展望:躬身开源,共筑智能时代


    此次获奖不仅是对极限科技在开源领域创新实践的高度认可,更是对其未来发展的激励。极限科技将继续积极投身开源实践,不断优化和创新 Coco AI,为更多企业提供高效、安全、智能的解决方案,推动企业从“数据沉睡时代”迈向“知识智能时代”。同时,极限科技还将加强与开源社区的合作,吸引更多开发者参与开源项目的开发和维护,共同推动开源技术的发展和应用。

    关于 Coco AI - 为现代团队打造的统一搜索与 AI 智能助手


    Coco AI 是一款完全开源、跨平台的企业级智能搜索与助手系统,专为现代企业打造。它通过统一搜索入口,连接企业内外部的异构数据源,融合大模型能力,帮助团队高效访问知识,智能决策协作。

    官网:[https://coco.rs](https://coco.rs)
    GitHub:[https://github.com/infinilabs](https://github.com/infinilabs)

【搜索客社区日报】第2073期 (2025-07-11)

社区日报Fred2000 发表了文章 • 0 个评论 • 908 次浏览 • 4 天前 • 来自相关话题

1、AI 系统架构的演进:LLM → RAG → AI Workflow → AI Agent
https://my.oschina.net/u/58463 ... 84272

2、Elasticsearch 在滴滴的应用与实践
https://mp.weixin.qq.com/s/nSnRH9MaG1_klI2IOJ_FuQ

3、OpenSearch 3.0发布,支持向量类型和MCP协议
https://mp.weixin.qq.com/s/Ge8-VEhN3tJf5aoU8X98RA

4、使用 Docker Compose 简化 INFINI Console 与 Easysearch 环境搭建
https://infinilabs.cn/blog/202 ... pose/

5、AI 深度研究(Deep Research)原理解析
https://my.oschina.net/u/58463 ... 83971

编辑:Fred
更多资讯:http://news.searchkit.cn

【搜索客社区日报】第2072期 (2025-07-10)

社区日报Se7en 发表了文章 • 0 个评论 • 1036 次浏览 • 5 天前 • 来自相关话题

1.LLM 在eBay广告系统中的实践
https://mp.weixin.qq.com/s/d0or_1U4TLVUKpK0vZAl2A
2.PerfTracker:万卡 GPU 集群超大规模训练性能问题定位利器!100万GPU 定位仅 3 分钟,7 分钟端到端性能诊断
https://mp.weixin.qq.com/s/YEs41WBJOY6hAG_G7Luf7A
3.OME:用模型驱动架构革新 LLM 基础设施
https://lmsys.org/blog/2025-07-08-ome

编辑:Se7en
更多资讯:http://news.searchkit.cn

【搜索客社区日报】第2070期 (2025-07-08)

社区日报God_lockin 发表了文章 • 0 个评论 • 1195 次浏览 • 6 天前 • 来自相关话题

1. 一个额外检索字段引发的惨案,从20ms到15s(需要梯子)
https://satorsight.medium.com/ ... 5c536

2. 用docker构建elastic 全家(需要梯子)
https://medium.com/%40kaviaras ... acb13

3. 不用es,直接用nodejs手搓搜索引擎行吗?(需要梯子)
https://leapcell.medium.com/st ... 86f28
 
编辑:斯蒂文
更多资讯:http://news.searchkit.cn

【搜索客社区日报】第2071期 (2025-07-9)

社区日报kin122 发表了文章 • 0 个评论 • 1142 次浏览 • 6 天前 • 来自相关话题

1. 关于运行聊天应用中的PDF 解析器的踩坑记(搭梯)
https://medium.com/data-scienc ... 35d27

2.Cursor 如何每秒处理一百万次矢量搜索查询(搭梯)
https://medium.com/kx-systems/ ... 06ec1

3.以视觉答案为基础的多模态 RAG(搭梯)
https://medium.com/data-scienc ... 86c88



编辑:kin122    
更多资讯:http://news.searchkit.cn

【搜索客社区日报】第2069期 (2025-07-07)

社区日报Muses 发表了文章 • 0 个评论 • 1489 次浏览 • 2025-07-07 23:47 • 来自相关话题

1、APM最佳实践:操作指南
https://mp.weixin.qq.com/s/XxlLMXAOVI9mTpkUIMmlQw

2、Elasticsearch 排序性能提升高达 900 倍
https://mp.weixin.qq.com/s/OAVYa_w0fAug9AiwdWPkeg

3、三个数据处理技巧,永远改变你的搜索体验
https://mp.weixin.qq.com/s/9p9rZwEI4Mieimw3cJWjxg

4、Elasticsearch:在 Elastic 中玩转 DeepSeek R1 来实现 RAG 应用
https://mp.weixin.qq.com/s/ia92pszO8ed98D4vOZ57pQ

5、使用 collapse 和 cardinality 实现高效分页在 Elasticsearch 中
https://elasticstack.blog.csdn ... 32271

编辑:Muse
更多资讯:http://news.searchkit.cn

【搜索客社区日报】第2068期 (2025-07-03)

社区日报Se7en 发表了文章 • 0 个评论 • 2168 次浏览 • 2025-07-03 17:31 • 来自相关话题

1.Higress 新增 MCP 服务管理,助力构建私有 MCP 市场
https://mp.weixin.qq.com/s/CoFyJMX7cHEKUFSSbKtvZQ
2.14G 显存跑动千亿大模型!基于 KTransformers 的 DeepSeek-R1'满血版'实战
https://mp.weixin.qq.com/s/XIsVYxQgp2tCbWHFFb95xg
3.Muon作者仅用一篇博客,就被OpenAI看中了
https://mp.weixin.qq.com/s/Ijez32vojwSuyJkycKJQ9g

编辑:Se7en
更多资讯:http://news.searchkit.cn

【搜索客社区日报】第2067期 (2025-07-02)

社区日报kin122 发表了文章 • 0 个评论 • 2324 次浏览 • 2025-07-02 14:43 • 来自相关话题

1.在 Logstash 中使用 Ruby 脚本
https://elasticstack.blog.csdn ... 88999

2.NVIDIA 表示小型语言模型是 Agentic AI 的未来(搭梯)
https://cobusgreyling.medium.c ... d9565

3.使用 Gemini 2.0 Flash 对数百万份文档进行提取和 RAG(搭梯)
https://ai.gopubby.com/10x-che ... b3b54



编辑:kin122 
更多资讯:http://news.searchkit.cn

INFINI Labs 产品更新 | Coco AI v0.6 发布 - 插件商店上线

资讯动态INFINI Labs 小助手 发表了文章 • 0 个评论 • 2090 次浏览 • 2025-07-01 19:16 • 来自相关话题

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

INFINI Labs 产品更新发布!此次更新涵盖 Coco AI 、Easysearch 等产品多项重要升级,其中 Coco AI 新增插件商店,方便用户安装和卸载插件,重构了搜索 API,优化聊天展示等,进一步提升 AI 搜索能力、易用性。

以下为详细更新介绍:

Coco AI v0.6


Coco AI 是一款完全开源、专注于混合云平台的企业级 AI 搜索与智能助手系统。它通过统一搜索入口,连接企业内外部的异构数据源,颠覆了企业访问和获取信息的方式和途径;同时 Coco AI 利用大模型能力和机器学习技术,能够为每个用户创建个性化知识图谱,进而优化个人及公司决策协作流程。

Coco AI 本次详细更新记录如下:

Coco AI 客户端 v0.6


功能更新


  • 添加插件商店 #699
    ![](https://infinilabs.cn/img/blog ... /1.png)

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

  • 历史列表支持快捷键操作(选择、删除等) #700
  • 添加 「检查更新」按钮 #701
  • 添加 app 索引重建按钮来索引最新的 app #719

    问题修复


  • 快速 AI 状态进行同步 #693
  • 打开/关闭插件应该也设置/取消快捷键 #691
  • 在 refresh 时,将在线的 Coco server 重新添加会搜索列表 #696
  • 输入框支持空格输入进行检索 #709
  • 搜索右键菜单失效问题 #713
  • 搜索窗口在搜索界面,底边栏提示消息错误的问题 #722

    优化改进


  • 插件的唯一标识变更为「作者 ID/插件 ID」 #643
  • 重构了搜索 API #679
  • 继续聊天展示优化 #690
  • 服务器列表支持快捷键 enter 选择 #692
  • 添加最新版本检查消息展示 #703
  • 在日志中记录插件命令的执行结果 #718

    Coco AI 服务端 v0.6


    问题修复


  • 从 assistant search 中移除 manually_renamed_title

    INFINI Easysearch v1.13.1


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

    Easysearch 本次更新如下:

    功能更新


  • 插件模块新增 dependencyModule 配置项,用于声明共享的 common 模块依赖

    问题修复


  • 修复了前缀查询请求在只包含一个字符时的空指针错误

    优化改进


  • 精简了部署后的 modules 和 plugins 大小

    INFINI Framework v1.1.9


    INFINI Framework 是 INFINI Labs 基于 Golang 的产品的核心基础,已开源。该框架以开发者为中心设计,简化了构建高性能、可扩展且可靠的应用程序的过程。

    Framework 本次更新如下:

    问题修复


  • 没有响应体的 response 不允许携带 trailers(#158)

    优化改进


  • 重构错误处理逻辑 (#157)
  • 更新 Makefile (#156)

    更多详情请查看以下详细的 Release Notes 或联系我们的技术支持团队!

  • [Coco AI App](https://docs.infinilabs.com/co ... notes/)
  • [Coco AI Server](https://docs.infinilabs.com/co ... notes/)
  • [INFINI Easysearch](https://docs.infinilabs.com/ea ... 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.cn/img/blog ... us.png)

    关于极限科技(INFINI Labs)


    ![INFINI Labs](https://infinilabs.cn/img/blog ... bs.png)

    极限科技,全称极限数据(北京)科技有限公司,是一家专注于实时搜索与数据分析的软件公司。旗下品牌极限实验室(INFINI Labs)致力于打造极致易用的数据探索与分析体验。

    极限科技是一支年轻的团队,采用天然分布式的方式来进行远程协作,员工分布在全球各地,希望通过努力成为中国乃至全球企业大数据实时搜索分析产品的首选,为中国技术品牌输出添砖加瓦。

    官网:<https://infinilabs.cn>;

一键启动:使用 start-local 脚本轻松管理 INFINI Console 与 Easysearch 本地环境

EasysearchINFINI Labs 小助手 发表了文章 • 0 个评论 • 2777 次浏览 • 2025-07-01 19:15 • 来自相关话题

系列回顾与引言


在我们的 INFINI 本地环境搭建系列博客中:

  1. 第一篇《[搭建持久化的 INFINI Console 与 Easysearch 容器环境](https://infinilabs.cn/blog/202 ... docker)》,我们深入探讨了如何使用基础的 docker run 命令,一步步构建起 Console 和 Easysearch 服务,并重点解决了数据持久化的问题。
  2. 第二篇《[使用 Docker Compose 简化 INFINI Console 与 Easysearch 环境搭建](https://infinilabs.cn/blog/202 ... ompose)》,我们学习了如何利用 Docker Compose 的声明式配置,将多容器应用的定义和管理变得更加简洁高效。

    虽然 Docker Compose 已经极大地提升了便利性,但在实际的开发和测试流程中,我们可能还需要处理版本选择、初始配置复制、多节点配置、指标采集开启等更细致的需求。为了进一步封装这些复杂性,提供真正的一键式体验,我们精心打造了一个强大的 Shell 脚本 [start-local](https://github.com/infinilabs/ ... cal.sh) 。

    本篇文章将带你领略 start-local 的魅力,看看它是如何将 Console 和 Easysearch (本文仍以 Console 1.29.6 和 Easysearch 1.13.0 为例) 的本地环境搭建与管理提升到一个全新的便捷高度——只需一行命令,即可拥有一个功能完备、数据持久的本地 INFINI Console 运行环境。

    start-local:您的 INFINI Console 本地环境瑞士军刀


    start-local 脚本(灵感来源于 [elastic/start-local](https://github.com/elastic/start-local))集成了环境搭建的诸多最佳实践,旨在提供极致的易用性。它在后台仍然依赖 Docker 和 Docker Compose,但为用户屏蔽了底层的复杂配置细节。

    核心功能:

    • 智能版本管理:自动获取 INFINI Console 和 Easysearch 的最新稳定版(或你指定的版本)作为默认镜像标签。
    • 动态配置生成:根据用户提供的命令行选项(如节点数、密码、版本等)自动生成 .envdocker-compose.yml 文件。
    • 初始配置自动处理:在首次启动或本地配置目录不存在时,自动从 Docker 镜像中提取并设置初始配置文件。
    • 一键式生命周期管理:通过简单的命令 (up, down, logs, clean) 管理整个应用的启动、停止、日志查看和彻底清理。
    • 持久化内置:默认将所有关键数据(配置、索引数据、日志)持久化到本地的 ./startlocal 目录(可配置)。
    • 集成 Agent 指标采集:通过 --metrics-agent 选项,轻松启用 Easysearch 的指标收集并自动配置其指向 INFINI Console。
    • 跨平台设计:主要针对 Linux 和 macOS 环境。

      如何获取和使用 start-local


      获取和执行 start-local 最便捷的方式是通过 curl 将脚本内容直接通过管道传递给 sh 执行:

      ```bash

      启动默认配置 (Console + 1 个 Easysearch 节点)

      curl -fsSL http://get.infini.cloud/start-local | sh -s

      想要更丰富的体验?试试这个:

      启动 3 个 Easysearch 节点,设置密码,并开启 Agent 指标采集

      curl -fsSL http://get.infini.cloud/start-local | sh -s -- up --nodes 3 --password "MyDevPass123." --metrics-agent
      ``<br /> <br /> _(请将http://get.infini.cloud/start-local替换为脚本的实际官方获取地址)_<br /> <br /> sh -s --部分确保脚本从标准输入读取,并且后续参数能正确传递给脚本。<br /> <br /> 脚本执行后,所有操作文件和持久化数据都会在当前目录下的./startlocal` (默认) 子目录中创建和管理。

      start-local 命令和选项概览


      通过 help 命令可以查看所有支持的功能:

      bash<br /> curl -fsSL <a href="http://get.infini.cloud/start-local" rel="nofollow" target="_blank">http://get.infini.cloud/start-local</a> | sh -s -- help<br />

      以下是一些最常用的命令和选项:

      命令 (COMMAND):

    • up: 核心命令。创建并启动定义的服务。自动处理初始配置。
    • down: 停止服务,移除容器、网络和相关匿名卷。本地持久化数据不受影响。
    • logs [服务名...]: 实时查看指定服务或所有服务的日志。
    • clean: 彻底清理。执行 down 后,删除整个工作目录 (./startlocal 及其所有内容)。
    • help: 显示帮助信息。

      常用选项 (OPTIONS) (主要用于 up 命令):

    • -cv TAG, --console-version TAG: 指定 Console 镜像版本 (例如 1.29.6)。
    • -ev TAG, --easysearch-version TAG: 指定 Easysearch 镜像版本 (例如 1.13.0)。
    • -n N, --nodes N: Easysearch 节点数量 (默认 1)。
    • -p PASSWORD, --password PASSWORD: Easysearch admin 用户初始密码 (默认 ShouldChangeme123.)。
    • --services s1[,s2,...]: 指定要启动的服务 (可选值: console, easysearch)。如果未指定,默认启动两者。
    • --metrics-agent: 启用 Easysearch 指标收集代理。
    • -wd PATH, --work-dir PATH: 自定义工作目录,替代默认的 ./startlocal

      实际操作示例


      让我们通过几个示例来感受 start-local 的便捷:

      1. 启动一个标准的开发环境 (Console + 1 个 Easysearch 节点,开启指标)

      bash<br /> curl -fsSL <a href="http://get.infini.cloud/start-local" rel="nofollow" target="_blank">http://get.infini.cloud/start-local</a> | sh -s<br />

      脚本会自动完成所有后台工作:检查依赖、确定版本、创建工作目录、生成配置文件、复制初始配置、生成 docker-compose.yml,最后启动服务并打印访问地址。

      2. 启动一个 3 节点的 Easysearch 集群,并指定版本和密码

      bash<br /> curl -fsSL <a href="http://get.infini.cloud/start-local" rel="nofollow" target="_blank">http://get.infini.cloud/start-local</a> | sh -s -- up \<br /> --nodes 3 \<br /> --password "ComplexP@ssw0rd." \<br /> --console-version 1.29.6 \<br /> --easysearch-version 1.13.0 \<br /> --services easysearch,console<br />

      脚本会智能处理多节点配置和持久化目录结构。

      3. 查看所有服务的日志

      bash<br /> curl -fsSL <a href="http://get.infini.cloud/start-local" rel="nofollow" target="_blank">http://get.infini.cloud/start-local</a> | sh -s -- logs<br />

      4. 停止运行环境(慎重操作)

      bash<br /> curl -fsSL <a href="http://get.infini.cloud/start-local" rel="nofollow" target="_blank">http://get.infini.cloud/start-local</a> | sh -s -- down<br />

      这将停止运行的所有容器。

      4. 删除运行环境(慎重操作)

      bash<br /> curl -fsSL <a href="http://get.infini.cloud/start-local" rel="nofollow" target="_blank">http://get.infini.cloud/start-local</a> | sh -s -- clean<br />

      这将移除所有相关的 Docker 资源以及本地的 ./startlocal 目录。

      持久化:数据安全无忧


      start-local 脚本的核心设计之一就是确保数据的持久化。所有重要的配置、数据和日志都会映射到宿主机的 ./startlocal (或你通过 -wd 指定的) 目录下的结构化子目录中:

    • Console: ./startlocal/console/{config,data,logs}/
    • Easysearch (单节点): ./startlocal/easysearch/{config,data,logs}/
    • Easysearch (多节点): ./startlocal/easysearch/node-X/{config,data,logs}/

      这意味着你可以随时 downup 你的环境,而不用担心丢失任何工作。

      访问服务


      启动成功后,脚本会打印出访问地址:

    • INFINI Console: <a href="http://localhost:9000" rel="nofollow" target="_blank">http://localhost:9000</a> (默认主机端口)
    • INFINI Easysearch: <a href="https://localhost:9200" rel="nofollow" target="_blank">https://localhost:9200</a> (默认主机端口,用户 admin,密码为你设置的或默认值)

      总结:从复杂到简单,专注核心价值


      从繁琐的 docker run 命令,到结构化的 docker-compose.yml,再到如今便捷的 start-local 脚本,我们一步步简化了 INFINI 本地环境的搭建和管理过程。start-local 将所有底层的复杂性封装起来,让你能够通过一行命令就拥有一个功能齐全、数据持久的本地环境,从而更专注于应用本身的功能测试、开发和学习。

      这正是良好工具的价值所在——让复杂的事情变简单,让我们能更高效地创造。

      希望这个 [start-local](https://github.com/infinilabs/ ... cal.sh) 脚本能成为你日常工作中得力的助手!如果你有任何建议或发现问题,欢迎通过项目仓库反馈。

      关于 INFINI Console


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

      INFINI Console 是一款开源的非常轻量级的多集群、跨版本的搜索基础设施统一管控平台。通过对流行的搜索引擎基础设施进行跨版本、多集群的集中纳管,企业可以快速方便的统一管理企业内部的不同版本的多套搜索集群。INFINI Console 还可以对集群内的索引及数据进行操作管理,可以配置灵活的告警规则,可以指定统一的安全策略,可以查看各个维度的日志和审计信息,真正实现企业级的搜索服务平台化建设和运营。

      官网文档:<https://docs.infinilabs.com/console/main/>;
      开源地址:<https://github.com/infinilabs/console>;

      作者:罗厚付,极限科技(INFINI Labs)云上产品设计与研发负责人,拥有多年安全风控及大数据系统架构经验,主导过多个核心产品的设计与落地,日常负责运维超大规模 ES 集群(800+节点/1PB+数据)。
      原文:http://localhost:1313/blog/202 ... ocal/

使用 Docker Compose 简化 INFINI Console 与 Easysearch 环境搭建

EasysearchINFINI Labs 小助手 发表了文章 • 0 个评论 • 2517 次浏览 • 2025-07-01 19:14 • 来自相关话题

前言回顾


在上一篇文章《[搭建持久化的 INFINI Console 与 Easysearch 容器环境](https://infinilabs.cn/blog/202 ... ocker/)》中,我们详细介绍了如何使用基础的 docker run 命令,手动启动和配置 INFINI Console (1.29.6) 和 INFINI Easysearch (1.13.0) 容器,并实现了关键数据的持久化,解决了重启后配置丢失的问题。

手动操作虽然能让我们深入理解 Docker 的核心机制,但在管理多个容器、网络和卷时,命令会变得冗长且容易出错。这时,Docker Compose 就派上了用场。它允许我们使用一个 YAML 文件来定义和运行多容器 Docker 应用程序。

本篇文章将演示如何将上一篇的手动步骤转换为使用 Docker Compose,让你更轻松地管理和维护这套本地开发测试环境。

Docker Compose 的优势


使用 Docker Compose 带来了诸多好处:

  • 声明式配置:在一个 docker-compose.yml 文件中定义所有服务、网络和卷,清晰明了。
  • 一键式管理:使用简单的命令(如 docker compose up, docker compose down)即可启动、停止和重建整个应用环境。
  • 简化网络和服务连接:Compose 会自动处理服务间的网络设置和依赖关系。
  • 易于共享和版本控制docker-compose.yml 文件可以轻松地与团队共享并通过版本控制系统(如 Git)进行管理。

    准备工作


    与上一篇类似,你需要:

  • 操作系统: macOS (本文示例)
  • Docker 环境: OrbStack ([https://orbstack.dev/](https://orbstack.dev/)) 或 Docker Desktop for Mac。
  • 确保 Docker Compose V2 (docker compose) 或 V1 (docker-compose) 已安装并可用。

    查看 docker compose 版本

    bash<br /> docker compose version<br /> Docker Compose version v2.24.5<br />

    步骤一:项目目录结构


    我们将继续使用上一篇文章中创建的目录结构。如果你还没有创建,或者想重新开始,可以在你的项目根目录(例如 ~/infini_compose_lab)下创建如下结构:

    ```bash

    1. 创建项目根目录

    mkdir -p ~/infini_compose_lab
    cd ~/infini_compose_lab

    2. 为 Console 和 Easysearch 创建持久化子目录

    这些目录将用于存储配置、数据和日志

    mkdir -p console/config console/data console/logs
    mkdir -p easysearch/config easysearch/data easysearch/logs
    ```

    步骤二:提取初始配置文件


    这一步与上一篇完全相同。你在首次启动时使用从镜像中提取的默认配置,请执行以下操作。如果这些目录中已存在配置文件(例如从上一篇博客的操作中保留下来的),Docker Compose 在挂载时会直接使用它们。

    1. INFINI Console (1.29.6) 初始配置
    (容器内配置路径: /config)

    ```bash

    确保在 ~/infini_compose_lab 目录下

    docker pull infinilabs/console:1.29.6
    docker run --rm \
    -v $PWD/console/config:/temp_host_config \
    infinilabs/console:1.29.6 \
    sh -c "cp -a /config/. /temp_host_config/ && chmod -R ugo+rw /temp_host_config/"
    <br /> <br /> **2. INFINI Easysearch (1.13.0) 初始配置**<br /> (容器内配置路径: `/app/easysearch/config`,初始密码: `INFINILabs01`)<br /> <br /> **重要提示:请务必为 Easysearch 设置安全的密码。**<br /> <br /> bash

    确保在 ~/infini_compose_lab 目录下

    docker pull infinilabs/easysearch:1.13.0
    docker run --rm \
    -e EASYSEARCH_INITIAL_ADMIN_PASSWORD="INFINILabs01" \
    -v $PWD/easysearch/config:/temp_host_config \
    infinilabs/easysearch:1.13.0 \
    sh -c "cp -a /app/easysearch/config/. /temp_host_config/ && chmod -R ugo+rw /temp_host_config/"
    ```

    步骤三:创建 docker-compose.yml 文件


    这是核心步骤。在你的项目根目录 ~/infini_compose_lab 下,创建一个名为 docker-compose.yml 的文件,并填入以下内容。这个文件定义了我们的服务、它们如何运行以及它们如何交互。

    ```bash
    cat < docker-compose.yml
    services:
    easysearch:
    image: infinilabs/easysearch:1.13.0
    container_name: infini-easysearch
    environment:

    • cluster.name=infini_compose_cluster
    • node.name=node-01
    • cluster.initial_master_nodes=node-01
    • "ES_JAVA_OPTS=-Xms1g -Xmx1g"
    • EASYSEARCH_INITIAL_ADMIN_PASSWORD=INFINILabs01
      ports:
    • "9200:9200"
    • "9300:9300"
      volumes:
    • ./easysearch/config:/app/easysearch/config
    • ./easysearch/data:/app/easysearch/data
    • ./easysearch/logs:/app/easysearch/logs
      ulimits:
      memlock: {soft: -1, hard: -1}
      nofile: {soft: 65536, hard: 65536}
      networks:
    • infini_app_net

      console:
      image: infinilabs/console:1.29.6
      container_name: infini-console
      ports:
    • "9000:9000"
      volumes:
    • ./console/config:/config
    • ./console/data:/data
    • ./console/logs:/log
      networks:
    • infini_app_net

      networks:
      infini_app_net:
      driver: bridge
      EOF
      ``<br /> <br /> **docker-compose.yml` 文件关键点:**

  • services: 定义了 easysearchconsole 两个服务。
  • image: 指定了每个服务使用的 Docker 镜像和版本。
  • container_name: 为容器指定一个易于识别的名称。
  • environment: 设置容器的环境变量。
  • Easysearch 单节点配置: 注意 cluster.initial_master_nodes 设置为节点自身的名称。
  • ports: 将容器的端口映射到宿主机的端口。
  • volumes: 实现持久化的核心。将宿主机当前目录 (./) 下的 console/*easysearch/* 子目录分别映射到容器内对应的路径。
  • networks: 将两个服务都连接到我们定义的 infini_app_net 网络。这使得 console 服务可以通过服务名 easysearch (例如 <a href="https://easysearch:9200" rel="nofollow" target="_blank">https://easysearch:9200</a>) 来访问 easysearch 服务。

    步骤四:使用 Docker Compose 启动环境


    现在,所有配置都在 docker-compose.yml 文件中了。启动整个环境只需要一条命令。
    ~/infini_compose_lab 目录下(包含 docker-compose.yml 文件),执行:

    bash<br /> docker compose up -d<br />

  • docker compose (V2) 或 docker-compose (V1)。
  • up: 创建并启动在 docker-compose.yml 中定义的所有服务。
  • -d: 后台模式运行。

    首次运行时,如果本地没有对应的镜像,Docker Compose 会自动拉取。

    常用 Docker Compose 命令:

  • 查看服务状态:

    bash<br /> docker compose ps<br />

  • 查看所有服务的实时日志:

    bash<br /> docker compose logs -f<br />

  • 查看特定服务的日志:

    bash<br /> docker compose logs -f console<br /> docker compose logs -f easysearch<br />

  • 停止所有服务(保留数据):

    bash<br /> docker compose stop<br />

  • 停止并移除所有容器、网络和匿名卷(保留通过 volumes 映射的本地数据):

    bash<br /> docker compose down<br />

    步骤五:验证和使用


    1. 访问 Console: 浏览器打开 <a href="http://localhost:9000" rel="nofollow" target="_blank">http://localhost:9000</a>
    2. 进行配置: 在 Console 中连接 Easysearch (<a href="https://easysearch:9200" rel="nofollow" target="_blank">https://easysearch:9200</a>,因为它们在同一个 Docker 网络中,可以直接使用服务名),创建用户,查看监控等。
    3. 测试持久化:

      ```bash
      docker compose down # 停止并移除容器

      稍等片刻

      docker compose up -d # 重新启动
      ``<br /> <br /> 再次访问http://localhost:9000`,你会发现之前的配置都还在!

      操作截图

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

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

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

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

      彻底清理,包括删除命名卷(如果使用了的话)和本地数据(可选)

      ```bash

      -v 移除命名卷

      docker compose down -v

      然后手动删除本地持久化目录

      rm -rf ~/infini_compose_lab/console
      rm -rf ~/infini_compose_lab/easysearch
      ```

      总结


      通过 Docker Compose,我们用一个简洁的 docker-compose.yml 文件取代了之前冗长的 docker run 命令,极大地简化了 INFINI Console 和 Easysearch 本地环境的搭建和管理过程。同时,通过正确的卷挂载配置,我们依然确保了数据的持久化,解决了重启后配置丢失的问题。

      对于开发、测试和快速原型验证,Docker Compose 无疑是一个强大而高效的工具。希望本教程能帮助你更轻松地使用 INFINI Console 进行本地实验和开发!

      关于 INFINI Console


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

      INFINI Console 是一款开源的非常轻量级的多集群、跨版本的搜索基础设施统一管控平台。通过对流行的搜索引擎基础设施进行跨版本、多集群的集中纳管,企业可以快速方便的统一管理企业内部的不同版本的多套搜索集群。INFINI Console 还可以对集群内的索引及数据进行操作管理,可以配置灵活的告警规则,可以指定统一的安全策略,可以查看各个维度的日志和审计信息,真正实现企业级的搜索服务平台化建设和运营。

      官网文档:<https://docs.infinilabs.com/console/main/>;
      开源地址:<https://github.com/infinilabs/console>;

      作者:罗厚付,极限科技(INFINI Labs)云上产品设计与研发负责人,拥有多年安全风控及大数据系统架构经验,主导过多个核心产品的设计与落地,日常负责运维超大规模 ES 集群(800+节点/1PB+数据)。
      原文:https://infinilabs.cn/blog/202 ... pose/

如何搭建持久化的 INFINI Console 与 Easysearch 容器环境

EasysearchINFINI Labs 小助手 发表了文章 • 0 个评论 • 2751 次浏览 • 2025-07-01 19:13 • 来自相关话题

背景介绍


许多用户在使用 Docker 部署 INFINI Console(本文使用 1.29.6 版本)时,可能会遇到一个常见问题:重启容器后,之前在 INFINI Console 中所连接的系统集群配置会丢失。这个问题通常源于未能正确配置 Docker 的数据持久化。原本通过 Docker 运行 INFINI Console 只是一个简单的测试示例,并未考虑多次重启使用,现官方文档也进行了更新,参考:[容器部署](https://docs.infinilabs.com/co ... ocker/)

接下来我们本地测试一下。

理解核心问题:Docker 容器与数据持久化


默认情况下,Docker 容器的文件系统是临时的。当容器被停止并删除后,容器内部所做的任何未被持久化的更改都会丢失。INFINI Console 的配置存储在其容器内部的特定目录中。为了在容器重启或重建后保留这些信息,我们必须将这些关键目录映射到宿主机(你的电脑)上的持久化存储位置。

准备工作


  • 操作系统: macOS (本文示例)
  • Docker 环境: OrbStack ([https://orbstack.dev/](https://orbstack.dev/)) 或 Docker Desktop for Mac。

    请确保 Docker 服务已启动并正常运行。你可以通过在终端执行 docker --version 来验证。

    bash<br /> docker --version<br /> Docker version 25.0.5, build 5dc9bcc<br />

    步骤一:创建本地持久化目录和自定义 Docker 网络


    首先,在宿主机上为 Console 和 Easysearch 创建用于存储配置、数据和日志的目录。同时,创建一个自定义 Docker 网络,以便容器之间可以通过名称进行通信。

    ```bash

    1. 创建项目根目录和各个服务的持久化子目录

    mkdir -p ~/infini_manual_setup/console/config ~/infini_manual_setup/console/data ~/infini_manual_setup/console/logs
    mkdir -p ~/infini_manual_setup/easysearch/config ~/infini_manual_setup/easysearch/data ~/infini_manual_setup/easysearch/logs
    cd ~/infini_manual_setup

    2. 创建一个自定义的 Docker 桥接网络

    docker network create infini_app_net
    ```

  • infini_app_net 是我们为这两个容器创建的自定义网络名称。

    步骤二:提取初始配置文件


    为了方便首次启动和后续自定义,我们需要从官方 Docker 镜像中提取默认的配置文件到我们本地创建的持久化目录中。

    1. INFINI Console (1.29.6) 初始配置
    根据 INFINI Console [官方 Docker 文档](https://docs.infinilabs.com/co ... docker),其容器内配置文件位于 /config

    bash<br /> docker pull infinilabs/console:1.29.6<br /> docker run --rm \<br /> -v $PWD/console/config:/temp_host_config \<br /> infinilabs/console:1.29.6 \<br /> sh -c "cp -a /config/. /temp_host_config/ && chmod -R ugo+rw /temp_host_config/"<br />

    2. INFINI Easysearch (1.13.0) 初始配置
    INFINI Easysearch 镜像内部的配置文件位于 /app/easysearch/config,并且需要初始管理员密码 INFINILabs01

    重要提示:请务必为 Easysearch 设置安全的密码。

    bash<br /> docker pull infinilabs/easysearch:1.13.0<br /> docker run --rm \<br /> -e EASYSEARCH_INITIAL_ADMIN_PASSWORD="INFINILabs01" \<br /> -v $PWD/easysearch/config:/temp_host_config \<br /> infinilabs/easysearch:1.13.0 \<br /> sh -c "cp -a /app/easysearch/config/. /temp_host_config/ && chmod -R ugo+rw /temp_host_config/"<br />

    现在,你的本地 console/configeasysearch/config 目录应该包含了初始配置文件。

    检查目录如下

    bash<br /> tree -L 3 .<br /> .<br /> ├── console<br /> │   ├── config<br /> │   │   ├── install_agent.tpl<br /> │   │   ├── permission.json<br /> │   │   ├── setup<br /> │   │   └── system_config.tpl<br /> │   ├── data<br /> │   └── logs<br /> └── easysearch<br /> ├── config<br /> │   ├── admin.crt<br /> │   ├── admin.key<br /> │   ├── analysis-ik<br /> │   ├── ca.crt<br /> │   ├── ca.key<br /> │   ├── easysearch.yml<br /> │   ├── easysearch.yml.example<br /> │   ├── instance.crt<br /> │   ├── instance.key<br /> │   ├── jvm.options<br /> │   ├── jvm.options.d<br /> │   ├── log4j2.properties<br /> │   └── security<br /> ├── data<br /> └── logs<br />

    步骤三:手动运行 INFINI Easysearch 容器


    使用 docker run 命令启动 Easysearch,并配置端口映射、环境变量和最重要的——卷挂载。

    bash<br /> docker run -d \<br /> --name easysearch01 \<br /> --network infini_app_net \<br /> -p 9200:9200 \<br /> -p 9300:9300 \<br /> -e cluster.name="infini_local_cluster" \<br /> -e node.name="easysearch-node01" \<br /> -e cluster.initial_master_nodes="easysearch-node01" \<br /> -e "ES_JAVA_OPTS=-Xms1g -Xmx1g" \<br /> -e EASYSEARCH_INITIAL_ADMIN_PASSWORD="INFINILabs01" \<br /> -v $PWD/easysearch/config:/app/easysearch/config \<br /> -v $PWD/easysearch/data:/app/easysearch/data \<br /> -v $PWD/easysearch/logs:/app/easysearch/logs \<br /> --ulimit memlock=-1:-1 \<br /> --ulimit nofile=65536:65536 \<br /> infinilabs/easysearch:1.13.0<br />

    关键参数解释:

  • --name easysearch01: 为容器指定一个名称。
  • --network infini_app_net: 连接到自定义网络。
  • -p HOST_PORT:CONTAINER_PORT: 端口映射。
  • -e VARIABLE=VALUE: 设置环境变量。
  • -v $PWD/host/path:/container/path: 实现持久化的核心。将宿主机当前工作目录 ($PWD) 下的子目录映射到容器内的指定路径。

    步骤四:手动运行 INFINI Console 容器


    现在启动 Console 容器,同样配置网络、端口、环境变量和卷挂载。

    bash<br /> docker run -d \<br /> --name console01 \<br /> --network infini_app_net \<br /> -p 9000:9000 \<br /> -v $PWD/console/config:/config \<br /> -v $PWD/console/data:/data \<br /> -v $PWD/console/logs:/log \<br /> infinilabs/console:1.29.6<br />

    查看日志

    bash<br /> docker logs -f easysearch01<br /> docker logs -f console01<br />

    步骤五:验证服务和持久化


    1. 检查容器状态: docker ps (应能看到 easysearch01console01)。
    2. 访问 Console: 浏览器打开 <a href="http://localhost:9000" rel="nofollow" target="_blank">http://localhost:9000</a>
    3. 在 Console 中进行初始化配置
    4. 测试持久化 (重启 Console 容器):

      ```bash
      docker stop console01
      docker rm console01

      重新运行步骤四中启动 Console 的 docker run 命令 (确保所有参数一致)

      ``<br /> <br /> 操作截图<br /> <br /> ![](<a href="https://infinilabs.cn/img/blog/2025/console-easysearch-with-docker/image-001.pn" rel="nofollow" target="_blank">https://infinilabs.cn/img/blog ... 01.pn</a>g)<br /> <br /> ![](<a href="https://infinilabs.cn/img/blog/2025/console-easysearch-with-docker/image-002.pn" rel="nofollow" target="_blank">https://infinilabs.cn/img/blog ... 02.pn</a>g)<br /> <br /> ![](<a href="https://infinilabs.cn/img/blog/2025/console-easysearch-with-docker/image-003.pn" rel="nofollow" target="_blank">https://infinilabs.cn/img/blog ... 03.pn</a>g)<br /> <br /> **再次访问 Console**: 打开http://localhost:9000`。如果一切正常,证明持久化成功。

      步骤六:停止和清理(可选)


  • 停止容器: docker stop console01 easysearch01
  • 移除容器: docker rm console01 easysearch01
  • 移除网络: docker network rm infini_app_net
  • 移除本地持久化数据 (如果不再需要):

    bash<br /> rm -rf ~/infini_manual_setup/console<br /> rm -rf ~/infini_manual_setup/easysearch<br />

    总结


    通过 docker run 命令并仔细配置卷挂载,我们成功地为 INFINI Console 和 Easysearch 构建了一个具有持久化能力的本地容器环境,有效解决了重启后配置丢失的问题。虽然手动操作参数较多,但它能让你更清晰地理解 Docker 的核心机制。

    在后续的文章中,我们将探讨如何使用 Docker Compose 来简化这一过程。

    关于 INFINI Console


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

    INFINI Console 是一款开源的非常轻量级的多集群、跨版本的搜索基础设施统一管控平台。通过对流行的搜索引擎基础设施进行跨版本、多集群的集中纳管,企业可以快速方便的统一管理企业内部的不同版本的多套搜索集群。INFINI Console 还可以对集群内的索引及数据进行操作管理,可以配置灵活的告警规则,可以指定统一的安全策略,可以查看各个维度的日志和审计信息,真正实现企业级的搜索服务平台化建设和运营。

    官网文档:<https://docs.infinilabs.com/console/main/>;
    开源地址:<https://github.com/infinilabs/console>;

    作者:罗厚付,极限科技(INFINI Labs)云上产品设计与研发负责人,拥有多年安全风控及大数据系统架构经验,主导过多个核心产品的设计与落地,日常负责运维超大规模 ES 集群(800+节点/1PB+数据)。
    原文:https://infinilabs.cn/blog/202 ... cker/