用了Elasticsearch,一口气上5T

【搜索客社区日报】第1970期 (2025-01-13)

社区日报Muses 发表了文章 • 1 个评论 • 2612 次浏览 • 2025-01-13 09:14 • 来自相关话题

1、如何监控 Elasticsearch 集群健康状态并实现邮件自动预警?
https://mp.weixin.qq.com/s/6K2PHQUdKXt4pngSjWmQRw

2、快速上手 INFINI Console 的 TopN 指标功能
https://infinilabs.cn/blog/202 ... rics/

3、介绍 Easysearch 的 Rollup
https://infinilabs.cn/blog/202 ... llup/

4、极致 ElasticSearch 调优,让你的ES 狂飙100倍!
https://mp.weixin.qq.com/s/7dYZp-NwNQMLRrdOjcNj5w

5、【Elasticsearch】批量操作:优化性能
https://blog.csdn.net/lilinhai ... 06354

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

INFINI Labs 产品更新 | Console 发布 TopN 功能,Easysearch 新增 Rollup 能力等

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

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

INFINI Labs 产品全新发布!此次更新为大家带来了 Console 的全新 TopN 功能,让您能够更高效地定位最关键的节点或索引;Easysearch 新增 Rollup 能力,大幅提升监控指标的存储周期并优化分析体验;此外,Framework 还修复了多项缺陷并进行了多处优化。欢迎下载体验,探索更多可能!

INFINI Console v1.28.0


INFINI Console 是一款非常轻量级的多集群、跨版本的搜索基础设施统一管控平台。通过对流行的搜索引擎基础设施进行跨版本、多集群的集中纳管, 企业可以快速方便的统一管理企业内部的不同版本的多套搜索集群。

Console 在线体验:

<http://demo.infini.cloud>; (用户名/密码:readonly/readonly)。

亮点更新


1. 重磅发布 Console 的 TopN 功能

随着集群节点数和索引数的不断增加,传统的监控方式已难以满足高效定位问题的需求。在过去,Console 的监控分析功能更多聚焦于单个节点或单个索引的多维指标,但当用户需要快速从所有节点或索引中找到 最忙、最慢 或 最大 的关键数据点时,往往显得非常不便。

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

尽管 Console 提供了强大的高级分析功能,但面对大量指标时,加载速度较慢、指标过于密集,难以直观发现问题。TopN 的推出,旨在解决这些痛点,为用户提供更加精准、高效的监控分析能力。

TopN 是 Console v1.28.0 中新增的主要功能,用于快速识别排名前 N 的关键指标数据点。它通过强大的多维度横向指标对比分析能力,帮助用户更高效地进行性能优化与决策分析。

关于 TopN 具体如何使用,请查看这篇单独的博客:[快速上手 INFINI Console 的 TopN 指标功能](https://infinilabs.cn/blog/202 ... trics/)

2. 集群动态 - 记录分片未分配原因

集群动态是一个用于查看集群全局关键事件的模块,当集群健康状态变为红色时,通常需要分析导致变红的原因。尤其是对历史某次集群变红的原因进行回溯,这对于故障诊断和分析极为重要。

在此次更新中,我们引入了一项新功能:当集群健康状态变红时,系统会自动记录导致变红的详细原因。这一功能为长期故障跟踪和诊断提供了宝贵的数据支持,使问题定位和解决更加高效。

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

Console 本次详细更新记录如下:

功能更新


  • 支持在 Insight 数据查询 API 中查询 Top N 指标。
  • 在集群健康状态变为红色后,将集群分配活动的解释记录到集群动态日志中。
  • 为索引增加了新的段内存指标(包括 norms、points、version map、fixed bit set)。
  • 新增 Insight 指标 CURD API,用于管理自定义指标。
  • 添加了多个常见用例的内置指标模板。

    问题修复


  • 修复了当集群 UUID 为空时查询线程池指标的问题。
  • 修复了单元测试中的问题。

    优化改进


  • 修复 GitHub Issues #46 和 #43,完善 GitHub Actions CI 流水线。
  • 优化了 Agent 列表的 UI,当列数据溢出时能更好显示。
  • 在概览表格的每一行添加了加载动画。
  • 支持通过集群 ID 和集群 UUID 查询指标。
  • 优化了指标查询的桶大小设置 (#59)。
  • 在监控图表中,如果数据由于时间间隔小于收集间隔而无数据显示,添加了提示。
  • 检查集群版本是否支持 metric transport_outbound_connections。
  • 将 DatePicker 的时间设置默认超时时间调整为 10 秒。
  • 强化了 http_client,支持更多自定义配置选项。

    INFINI Easysearch v1.10.0


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

    Easysearch 本次更新如下:

    功能更新


  • Rollup 功能增强:新增并发限制、任务失败自动重启功能,支持批量启动、停止 Job, 并支持 date_range 聚合。
  • 字段类型功能优化:新增 flattened_text 和 match_only_text 字段类型,支持更多查询场景;

    关于 Rollup 具体如何使用,请查看这篇单独的博客:[介绍 Easysearch 的 Rollup](https://infinilabs.cn/blog/202 ... ollup/)

    INFINI Framework v1.1.0


    功能更新


  • 将指标收集任务设置为单例模式,提高执行效率。(#17)
  • 在集群健康状态变为红色时,将集群分配解释记录到活动日志中。
  • 新增 Elastic API 方法 ClusterAllocationExplain。
  • 在指标配置中添加 min_bucket_size 和 hits_total 选项。(#29)
  • 在 http_client 配置部分中新增代理设置。(#33)
  • 添加新条件,用于校验数组和字符串等项目的长度。(#38)
  • 增强 HTTP 处理器工具,支持按状态码写入字节流。(#55)

    重大变更


  • 更新 WebSocket 握手消息头,改用 websocket-session-id 以增强会话标识能力。

    问题修复


  • 移除节点状态任务中多余的集群统计指标收集逻辑。(#17)
  • 修复集群指标主开关不起作用的问题。(#17)
  • 修复集群状态变为可用后元数据未能即时生效的问题。(#23)
  • 允许在处理多个缺口的文件时跳过下一文件。(#22)
  • 移除每节点指标收集逻辑以提升性能。(#26)
  • 修正从基本身份验证中解析密码的问题。(#31)
  • 修复指标收集任务间隔设置未生效的问题。(#30)
  • 解决无效数据目录问题,直接使用 appname 进行配置。(#46)
  • 修正健康 API 中系统集群健康状态的错误报告。(#39)

    优化改进


  • 添加框架和依赖库的提交哈希,增强可追溯性。
  • 在应用初始化时自动去除输入变量中的多余空格。
  • 初次访问时自动初始化 Badger 数据库。(#27)
  • 在日志信息中添加搜索响应详情,增强诊断能力。(#28)

    ---

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

  • INFINI Console

  • INFINI Framework

  • INFINI Easysearch
    • https://infinilabs.cn/docs/lat ... arch/

      期待反馈


      欢迎下载体验使用,如果您在使用过程中遇到如何疑问或者问题,欢迎前往 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>;

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

社区日报Fred2000 发表了文章 • 0 个评论 • 2777 次浏览 • 2025-01-10 12:19 • 来自相关话题

1、Elasticsearch 近似实时(非实时)搜索的原因分析
https://blog.csdn.net/qq_28727 ... 76941

2、Elasticsearch 性能优化指南:线程池优化详细介绍
https://mp.weixin.qq.com/s/Gjnk01cIUxKKm95aXfEKSg

3、如何使用 Logstash 8 连接 Easysearch
https://mp.weixin.qq.com/s/cA9znJ3sNl1Prq3irLThxA

4、【老杨玩搜索】13. Easysearch 页面-pagination | 从零开始实现页面搜索功能
https://www.bilibili.com/video/BV1G2S4YcE9b/

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

是否可以在forcemerge时指定只清理一个段里的deleted文档,不合并2个段

ElasticsearchFred2000 回复了问题 • 2 人关注 • 1 个回复 • 5944 次浏览 • 2025-01-14 10:14 • 来自相关话题

【搜索客社区日报】第1968期 (2025-01-09)

社区日报Se7en 发表了文章 • 0 个评论 • 2559 次浏览 • 2025-01-09 20:07 • 来自相关话题

1.DeepSeek V3 详细解读:模型&Infra 建设
https://mp.weixin.qq.com/s/DKdXcguKcCS5gcwIRLH-Cg
2.一文带你入门 MCP(模型上下文协议)
https://mp.weixin.qq.com/s/rcOi7e8F5qGVVF2noCk46Q
3.2024年度数据库回顾
https://mp.weixin.qq.com/s/jgYDHdCqWDRDfoFkfs7W8Q
4.看完英伟达发布会,玩游戏的和搞AI的都疯了
https://mp.weixin.qq.com/s/wAfeqAgN6eSPDKybW0-u_Q

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

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

社区日报kin122 发表了文章 • 0 个评论 • 2852 次浏览 • 2025-01-08 10:19 • 来自相关话题

1.外行如何速成专家?Embedding之BM25、splade稀疏向量解读
https://mp.weixin.qq.com/s/hRTqMsX_eonRAqWVMwAU-w
2.RAG开发中,如何用Milvus 2.5 BM25算法实现混合搜索
https://mp.weixin.qq.com/s/Dsr4PkxcjoIfaPaWNrqJ7w
3.为RAG pipeline选择最佳的embedding模型
https://mp.weixin.qq.com/s/4h9duWccjOvCys8o2jq1GQ
4.日志审计系统到底是什么东东
https://mp.weixin.qq.com/s/Va8SZaaVMkBRh-RzSUPUlw


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

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

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


1. 有没想过用ES搞个天气预报牌啊?(需要梯子)
https://medium.com/%40rahul.fi ... c2698
1. 够浪日志专家是你吗?(需要梯子)
https://godfreyowidi.medium.co ... e9b54
1. 地理信息可视化你会不会(需要梯子)
https://medium.com/%40truongho ... 677eb
编辑:斯蒂文
更多资讯:http://news.searchkit.cn
 

【搜索客社区日报】第1965期 (2025-01-06)

社区日报Muses 发表了文章 • 0 个评论 • 3003 次浏览 • 2025-01-06 09:15 • 来自相关话题

1、极限网关案例分享(1):使用极限网关代替 Nginx 访问 ECE
https://infinilabs.cn/blog/202 ... ng-1/

2、Elasticsearch实战教程:如何使用集群索引数据来进行统计多个数据?
https://blog.csdn.net/qq_57761 ... 92484

3、Elasticsearch中的三种分页策略深度解析:原理、使用及对比
https://blog.csdn.net/qq_26664 ... 98228

4、探索 INFINI Console:提升 Elasticsearch 管理效率的新利器
https://mp.weixin.qq.com/s/bMAwMlRXJjuYSf9fV4MnsQ

5、2025 年,AI Agent 将如何变革?
https://mp.weixin.qq.com/s/c5eVtFdO4A2mr9Eqluk4VQ

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

招聘 Elasticsearch 开发工程师 - Base 北京 - 极限科技(INFINI Labs)

求职招聘INFINI Labs 小助手 发表了文章 • 0 个评论 • 3955 次浏览 • 2025-01-03 18:37 • 来自相关话题

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

「新岁启程,与君同行」极限科技诚招 Elasticsearch 开发工程师!

欢迎搜索技术热爱者加入我们,共同打造高效、智能的搜索解决方案!

如果你还不了解 极限科技(INFINI Labs) 是谁,在做什么,需要什么样的小伙伴,那么请看下文:

我们是谁


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

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

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

官网:https://infinilabs.cn

我们在做什么


极限科技(INFINI Labs)正在致力于以下几个核心方向:

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

2、打造下一代实时搜索引擎 INFINI Pizza
INFINI Pizza 是一个分布式混合搜索数据库系统。我们的使命是充分利用现代硬件和人工智能的潜力,为企业提供量身定制的实时智能搜索体验。我们致力于满足具有挑战性的环境中高并发和高吞吐量的需求,同时提供无缝高效的搜索功能。详情参见:https://pizza.rs

3、打造 Coco AI — 搜索、连接、协作
Coco AI 是一个人工智能驱动的统一的搜索平台,将您的所有企业应用程序和数据(如 Google Workspace、Dropbox、Confluent Wiki、GitHub 等)整合到一个强大而简洁的搜索界面中。本项目包含适用于桌面和移动端的 COCO 应用,用户可以通过该应用在不同平台上搜索并与企业数据互动。详情参见:https://coco.rs

4、积极参与全球开源生态建设
通过开源 Coco AI、Console、Gateway、Agent、Loadgen 等搜索领域产品和社区贡献,推动全球开源技术的发展,提升中国在全球开源领域的影响力。INFINI Labs Github 主页:https://github.com/infinilabs

5、提供专业服务
为客户提供包括搜索技术支持、迁移服务、定制解决方案和培训在内的全方位服务。

6、提供国产化搜索解决方案
针对中国市场的特殊需求,提供符合国产化标准的搜索产品和解决方案,帮助客户解决使用 Elasticsearch 时遇到的挑战。

极限科技(INFINI Labs)通过这些努力,旨在成为全球领先的实时搜索和数据分析解决方案提供商。

在招岗位介绍


岗位名称


Elasticsearch 开发工程师

岗位职责


  1. 维护和开发基于 Elasticsearch 的搜索业务代码,优化搜索功能,提升用户体验;
  2. 深入研究 Elasticsearch 和 Lucene 内核,定制优化底层功能以满足业务需求;
  3. 优化索引策略、查询性能和存储效率,提升系统扩展性与稳定性;
  4. 负责搜索集群的配置、监控和维护,确保高可用性与安全性;
  5. 编写技术文档,与团队协作解决复杂问题,支持业务需求落地。

    岗位要求


  6. 计算机相关专业,本科及以上学历,3 年以上 Elasticsearch 开发经验;
  7. 熟悉 Elasticsearch 和 Lucene 核心模块,掌握 Java 后端语言;
  8. 深入研究过 ES 或者 Lucene 代码,能基于 ES 开发插件;
  9. 深入理解全文检索原理、索引优化与查询性能调优;
  10. 有分布式系统开发经验,能够诊断并解决性能瓶颈;
  11. 有 Elasticsearch 二次开发或插件开发经验;
  12. 善于分析和解决问题,具备良好的沟通与协作能力;
  13. 北京全职,接受出差或客户现场驻场开发。

    加分项


  14. 有自己的博客、Github、顶级开源项目贡献者优先;
  15. 有 Lucene 或者 Elasticsearch 源码 Commit 贡献优先;
  16. 有 Elastic Certified Engineer 认证优先;
  17. 有较强的学习能力,愿意致力于新技术的研究。

    简历投递


  18. 邮件:hello@infini.ltd(邮件标题请备注姓名+求职岗位)
  19. 微信:INFINI-Labs (加微请备注求职岗位)

    ![](https://infinilabs.cn/img/comp ... at.jpg)

    我们期待有才华、有激情的你加入我们,一起探索数据搜索的未来,共同创造无限可能!

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

社区日报Fred2000 发表了文章 • 0 个评论 • 2552 次浏览 • 2025-01-03 14:34 • 来自相关话题

1、如何使用 Kibana OSS 7.10.2 连接 Easysearch
https://infinilabs.cn/blog/202 ... arch/

2、告别 Kibana:Elasticsearch 桌面客户端的新变革
https://mp.weixin.qq.com/s/xFUGhZ7RiIA5QqQHkoT7GQ

3、Elasticsearch 中副本和分片如何优化?
https://mp.weixin.qq.com/s/29i5dAWyYRfqaWxtt4x1Qg

4、优化混合搜索:在 OpenSearch 中提升搜索相关性的策略与实践
https://opensearch.org/blog/hy ... tion/

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

【搜索客社区日报】第1963期 (2024-12-31)

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


1. 在SpringBoot里用注解生成ES index(需要梯子)
https://serdaralkancode.medium ... 807a8
2. ES 里的数据摄取管道(需要梯子)
https://medium.com/%40imadsadd ... c97ae
3. Docker 里的ES和kibana的安全设置(需要梯子)
https://umasrinivask.medium.co ... cb3fd
编辑:斯蒂文
更多资讯:http://news.searchkit.cn
 

从 Elastic 迁移到 Easysearch 指引

Easysearchyangmf2040 发表了文章 • 0 个评论 • 3207 次浏览 • 2024-12-30 16:44 • 来自相关话题

从 Elasticsearch 迁移到 [Easysearch](https://infinilabs.cn/products/easysearch/) 需要考虑多个方面,这取决于当前使用的 Elasticsearch 版本、能容忍的停机时间、应用需求等。在此背景下,我们梳理了一下通用的升级指引,方便大家进行迁移工作。

迁移路径


| Elasticsearch 版本 | 快照兼容 | 推荐升级方法 |
| ---------------------- | ------------ | ------------------------ |
| 5.x | ❌ | 使用 INFINI Console 迁移 |
| 6.x | ✅ | 快照恢复迁移 |
| 7.0.0 - 7.10.2 | ✅ | 快照恢复迁移 |
| >7.11.0 | ❌ | 使用 INFINI Console 迁移 |

之前有同事做过相关测试,详情请移步[这里](https://infinilabs.cn/blog/202 ... store/)。

快照恢复迁移


  1. 部署新的 Easysearch 集群,如果有使用插件(如 IK),也一并安装。
  2. 将备份仓库注册到 Easysearch 集群。
  3. 在 Easysearch 中设置需要使用的用户名和密码信息。
  4. 原 Elasticsearch 集群进行快照备份。
  5. 在 Easysearch 集群中进行备份还原。
  6. 另部署一套应用连接 Easysearch 集群,进行数据、功能验证。
  7. 停止应用写入新的数据到 Elasticsearch。
  8. 原 Elasticsearch 集群进行快照备份。
  9. 在 Easysearch 集群中进行备份还原。
  10. 再次使用应用验证数据、功能正常。
  11. 切换,老应用下线使用新应用或者老应用修改地址连接 Easysearch 集群。

    INFINI Console 迁移


  12. 部署新的 Easysearch 集群及其插件(如 IK)。
  13. 部署 INFINI Console、Gateway 程序。
  14. 将 Elasticsearch 和 Easysearch 注册到 INFINI Console 中。
  15. 在 Easysearch 中设置需要使用的用户名和密码信息。
  16. 建立数据迁移任务,对业务索引进行迁移,建议启用压缩功能。
  17. 另部署一套应用连接 Easysearch 集群,进行数据、功能验证。
  18. 停止应用写入新的数据到 Elasticsearch。
  19. 再次建立数据迁移任务,设置条件,只迁移增量数据。
  20. 再次使用应用验证数据、功能正常。
  21. 切换,老应用下线使用新应用或者老应用修改地址连接 Easysearch 集群。

    客户端调整


    如果要继续使用 Java High Level REST Client,建议将版本调整到 7.10.2 。当然更建议的是使用 Easysearch 的[客户端](https://infinilabs.cn/blog/202 ... ent-1/),更轻更快,构建查询,跟搭积木一样简单。

    开源事业


    [极限科技(INFINI Labs)](https://infinilabs.cn) 一直致力于为开发者和企业提供优质的开源工具,提升整个技术生态的活力。除了维护国内最流行的分词器 analysis-ik 和 analysis-pinyin ,也在不断推动更多高质量开源产品的诞生。

    在极限科技成立三周年之际,公司宣布以下产品和工具已全面开源:

Easysearch 可搜索快照功能,看这篇就够了

Easysearchyangmf2040 发表了文章 • 0 个评论 • 3024 次浏览 • 2024-12-30 16:38 • 来自相关话题

可搜索快照功能改变了我们对备份数据的查询方式。以往要查询备份数据时,要先找到备份数据所在的快照,然后在一个合适的环境中恢复快照,最后再发起请求查询数据。这个处理路径很长,而且很消耗时间。可搜索快照功能将大大简化该处理路径,节约时间。

角色设置


相信你对节点角色的概念已经有所熟悉。要启用可搜索快照功能,[Easysearch](https://infinilabs.cn/products/easysearch/) 集群中必须至少有一个节点拥有 search 角色。参考设置如下。

plain<br /> node.roles: ["search"]<br /> node.search.cache.size: 500mb<br />

  • node.roles: 指定节点角色,只有 search 角色的节点才能去搜索快照中的数据。
  • node.search.cache.size: 执行快照搜索时,数据缓存大小。

    混合角色设置,参考如下。

    plain<br /> node.roles: ["master","data","search","ingest"]<br /> node.search.cache.size: 500mb<br />

    创建快照


    可搜索快照功能使用普通快照作为基础,创建快照命令不变。比如我创建且备份个 infini 索引。

    ```plain

    创建 infini 索引

    POST infini/_doc
    {
    "test":"Searchable snapshots"
    }

    创建快照备份 infini 索引

    PUT _snapshot/my-fs-repository/1
    {
    "indices": "infini",
    "include_global_state": false
    }
    ```

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

    创建快照索引


    可搜索快照功能的核心是搜索快照中的索引,这一步是通过快照索引实现的。为了和集群中的普通索引区别开来,我们将实际存储在快照中的索引称为快照索引。通过使用 Easysearch 的 _restore API 并指定 remote_snapshot 存储类型来创建快照索引。

    创建快照索引时,注意名称不能与当前索引名称重复。通常我们备份完索引后,可删除索引释放节点磁盘空间,创建快照索引时默认使用原来的名称。

    ```plain

    删除 infini 索引释放磁盘空间

    DELETE infini

    创建快照索引,使用原索引名称

    POST /_snapshot/my-fs-repository/1/_restore
    {
    "indices": "infini",
    "include_global_state": false,
    "include_aliases": false,
    "storage_type": "remote_snapshot"
    }
    <br /> <br /> 创建快照索引的命令和还原快照的命令非常相似,关键在于 storage_type 参数指定 remote_snapshot 存储类型。<br /> <br /> 如果要将快照中的全部索引都创建快照索引,可省略 indices 参数。<br /> <br /> ![](<a href="https://infinilabs.cn/img/blog/2024/searchable-snapshot-read-this-article/2.pn" rel="nofollow" target="_blank">https://infinilabs.cn/img/blog ... /2.pn</a>g)<br /> <br /> 如果想在创建快照索引时指定不同的名字,参考下面的命令。<br /> <br /> plain
    POST /_snapshot/my-fs-repository/1/_restore
    {
    "indices": "infini",
    "include_global_state": false,
    "include_aliases": false,
    "storage_type": "remote_snapshot",
    "rename_pattern": "(infini)",
    "rename_replacement": "snapshot-$1"
    }
    ```

  • rename_pattern: 使用此选项指定索引匹配的正则表达式。使用捕获组重用索引名称的部分。
  • rename_replacement: 使用 $0 包括整个匹配索引名称,使用 $1 包括第一个捕获组的内容,等等。

    上述命令创建出来的快照索引名称是 snapshot-infini 。

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

    经过上面一系列的操作,我已经拥有了两个快照索引。

    搜索快照索引


    我们通过搜索快照索引达到搜索快照数据的目的,令人开心的是搜索快照索引和搜索普通索引的语法完全一样。😀

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

    常见问题


    如何区分普通索引和快照索引呢?

    我们可以通过索引的 settings 信息区分,快照索引的 settings 信息中有 store.type: remote_snapshot 信息,普通索引没有此信息。

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

    快照索引能写入数据吗?

    快照索引无法写入,数据仍然保持在快照格式中存储在存储库中,因此可搜索快照索引本质上是只读的。 任何尝试写入可搜索快照索引的操作都会导致错误。

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

    快照索引不想要了怎么办?

    直接删除,需要时再执行创建快照索引流程。此外快照在创建快照索引后,无法直接删除快照,要先删除快照索引。
    ![](https://infinilabs.cn/img/blog ... /7.png)

    如果您对上述内容有任何疑问,欢迎与我讨论。

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

【搜索客社区日报】第1962期 (2024-12-30)

社区日报Muses 发表了文章 • 0 个评论 • 2976 次浏览 • 2024-12-30 13:34 • 来自相关话题

1、Easysearch 可搜索快照功能,看这篇就够了
https://infinilabs.cn/blog/202 ... icle/

2、Spring Boot 集成 Easysearch 完整指南
https://infinilabs.cn/blog/202 ... tion/

3、DeepSeek-V3 是怎么训练的|深度拆解
https://mp.weixin.qq.com/s/2M_f2ow3rfarr-vLeKbVCA

4、一文讲透 AI Agent 与 AI Workflow 的区别和深度解析:从自动化到智能化的演进
https://mp.weixin.qq.com/s/GCifbH9wGdPysu1z-n3KDA

5、从ES的JVM配置起步思考JVM常见参数优化
https://blog.csdn.net/xiaofeng ... 39510

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

Spring Boot 集成 Easysearch 完整指南

EasysearchINFINI Labs 小助手 发表了文章 • 0 个评论 • 3387 次浏览 • 2024-12-29 15:41 • 来自相关话题

[Easysearch](https://infinilabs.cn/products/easysearch/) 的很多用户都有这样的需要,之前是用的 ES,现在要迁移到 Easysearch,但是业务方使用的是 Spring Boot 集成的客户端,问是否能平滑迁移。

Easysearch 是完全兼容 Spring Boot 的,完全不用修改,本指南将探讨如何将 Spring Boot 和 ES 的 high-level 客户端 与 Easysearch 进行集成,涵盖从基础设置到实现 CRUD 操作和测试的所有内容。

服务器设置


首先,需要修改 Easysearch 节点的 easysearch.yml 文件,打开并配置这 2 个配置项:

```yml
elasticsearch.api_compatibility: true

根据客户端版本配置版本号,我这里配置成 7.17.18

elasticsearch.api_compatibility_version: "7.17.18"
```

项目设置


然后,让我们设置 Maven 依赖。以下是 pom.xml 中的基本配置:

```xml


11
4.4.18
7.17.18




org.springframework.boot
spring-boot-starter-web



org.springframework.data
spring-data-elasticsearch
${spring-data-elasticsearch.version}


org.elasticsearch
elasticsearch
${elasticsearch.version}


org.elasticsearch.client
elasticsearch-rest-high-level-client
${elasticsearch.version}


org.projectlombok
lombok
true


```

## 客户端连接配置

完全和连接 Elasticsearch 的方式一样,不用修改:

配置 src/main/resources/application.yml 文件

```yaml
spring:
elasticsearch:
rest:
uris: https://localhost:9202
username: admin
password: xxxxxxxxxxx
ssl:
verification-mode: none
```

连接配置类

```java
@Configuration
public class ElasticsearchConfig extends AbstractElasticsearchConfiguration {
@Value("${spring.elasticsearch.rest.uris}")
private String elasticsearchUrl;

@Value("${spring.elasticsearch.rest.username}")
private String username;

@Value("${spring.elasticsearch.rest.password}")
private String password;

@Override
@Bean
public RestHighLevelClient elasticsearchClient() {
final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
credentialsProvider.setCredentials(AuthScope.ANY,
new UsernamePasswordCredentials(username, password));

SSLContext sslContext = SSLContexts.custom()
.loadTrustMaterial(null, (x509Certificates, s) -> true)
.build();

RestClientBuilder builder = RestClient.builder(HttpHost.create(elasticsearchUrl))
.setHttpClientConfigCallback(httpClientBuilder -> httpClientBuilder
.setDefaultCredentialsProvider(credentialsProvider)
.setSSLContext(sslContext)
.setSSLHostnameVerifier(NoopHostnameVerifier.INSTANCE));

return new RestHighLevelClient(builder);
}
}
```

## 领域模型

使用 Spring 的 Elasticsearch 注解定义领域模型:

```java
@Data
@Document(indexName = "products")
public class Product {
@Id
private String id;

@Field(type = FieldType.Text, name = "name")
private String name;

@Field(type = FieldType.Double, name = "price")
private Double price;
}
```

## 仓库层

创建继承 ElasticsearchRepository 的仓库接口:

```java
@Repository
@EnableElasticsearchRepositories
public interface ProductRepository extends ElasticsearchRepository {
}
```

## 服务层

实现服务层来处理业务逻辑:

```java
@Service
public class ProductService {
private final ProductRepository productRepository;

@Autowired
public ProductService(ProductRepository productRepository) {
this.productRepository = productRepository;
}

public Product saveProduct(Product product) {
return productRepository.save(product);
}

public Product findProductById(String id) {
return productRepository.findById(id).orElse(null);
}
}
```

## 测试

编写集成测试类:

```java
@SpringBootTest
public class ProductServiceIntegrationTest {
@Autowired
private ElasticsearchOperations elasticsearchOperations;

@Autowired
private ProductService productService;

private static final String INDEX_NAME = "products";

@BeforeEach
public void setUp() {
IndexOperations indexOperations = elasticsearchOperations.indexOps(IndexCoordinates.of(INDEX_NAME));
if (indexOperations.exists()) {
indexOperations.delete();
}

// 定义 mapping
Document mapping = Document.create()
.append("properties", Document.create()
.append("name", Document.create()
.append("type", "text")
.append("analyzer", "standard"))
.append("price", Document.create()
.append("type", "double")));

// 创建索引并应用 mapping
indexOperations.create(Collections.EMPTY_MAP, mapping);
}

@Test
public void testSaveAndFindProduct() {
List products = Arrays.asList(
new Product("Test Product 1", 99.99),
new Product("Test Product 2", 199.99),
new Product("Test Product 3", 299.99)
);

List queries = products.stream()
.map(product -> new IndexQueryBuilder()
.withObject(product)
.withIndex(INDEX_NAME)
.build())
.collect(Collectors.toList());

List indexedInfos = elasticsearchOperations.bulkIndex(
queries,
IndexCoordinates.of(INDEX_NAME)
);

// 验证结果
List ids = indexedInfos.stream()
.map(IndexedObjectInformation::getId)
.collect(Collectors.toList());

assertFalse(ids.isEmpty());
assertEquals(products.size(), ids.size());
}
}
```

## 结论

本指南展示了 Easysearch 与 Elasticsearch 的高度兼容性:

1. 配置方式相同,仅需启用 Easysearch 的 API 兼容模式。
2. 可直接使用现有 Elasticsearch 客户端。
3. Maven 依赖无需更改。
4. API、注解和仓库接口完全兼容。
5. 现有测试代码可直接应用。

这种兼容性使得从 Elasticsearch 迁移到 Easysearch 成为一个简单、低风险的过程。Spring Boot 项目可以几乎无缝地切换到 Easysearch,同时获得其性能和资源利用方面的优势。

## 关于 Easysearch

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

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

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

> 作者:张磊,极限科技(INFINI Labs)搜索引擎研发负责人,对 Elasticsearch 和 Lucene 源码比较熟悉,目前主要负责公司的 Easysearch 产品的研发以及客户服务工作。
> 原文:https://infinilabs.cn/blog/202 ... tion/