The requested URL was not found on this server. 不管你信不信,反正我是没找到

【搜索客社区日报】第2035期 (2025-05-12)

活动推荐🔥:【5月15日 北京】本次 Workshop 活动将围绕 “搜索服务统一治理” “流量管控” “服务编排” 三大核心板块展开,深入探讨如何通过 INFINI Labs 产品为企业提供高效、灵活的搜索基础设施管理方案。欢迎大家免费报名参加。
https://hdxu.cn/128g7

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

2、Easysearch 基础运维扫盲指南:从 HTTP 到 HTTPS、认证与安全访问全解析
https://mp.weixin.qq.com/s/HR7E7HAfS4ntpSkD_r5_Zw

3、MySQL数据实时接入Easysearch,零代码迁移全流程
https://mp.weixin.qq.com/s/bVGf8v6RAQljficJrjEISw

4、字节跳动开源了一款 Deep Research 项目
https://mp.weixin.qq.com/s/ejE6bfR_lFQutPy-u_pzmQ

5、最强中文TTS接入MCP-Server,效果再次封神!
https://mp.weixin.qq.com/s/ivjDIwYXIqxyV3kOvJ2VhQ

编辑:Muse
更多资讯:http://news.searchkit.cn
继续阅读 »
活动推荐🔥:【5月15日 北京】本次 Workshop 活动将围绕 “搜索服务统一治理” “流量管控” “服务编排” 三大核心板块展开,深入探讨如何通过 INFINI Labs 产品为企业提供高效、灵活的搜索基础设施管理方案。欢迎大家免费报名参加。
https://hdxu.cn/128g7

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

2、Easysearch 基础运维扫盲指南:从 HTTP 到 HTTPS、认证与安全访问全解析
https://mp.weixin.qq.com/s/HR7E7HAfS4ntpSkD_r5_Zw

3、MySQL数据实时接入Easysearch,零代码迁移全流程
https://mp.weixin.qq.com/s/bVGf8v6RAQljficJrjEISw

4、字节跳动开源了一款 Deep Research 项目
https://mp.weixin.qq.com/s/ejE6bfR_lFQutPy-u_pzmQ

5、最强中文TTS接入MCP-Server,效果再次封神!
https://mp.weixin.qq.com/s/ivjDIwYXIqxyV3kOvJ2VhQ

编辑:Muse
更多资讯:http://news.searchkit.cn 收起阅读 »

INFINI Console 纳管 Elasticsearch 9(二):日志监控

前面介绍过 INFINI Console 纳管 Elasticsearch 9(一),进行指标监控、数据管理、DSL 语句执行,但日志监控功能需要结合 Agent 才能使用。现在来实现一下:

Agent 需要和 ES 部署到同一机器上,这里是在我本地电脑上进行安装。

安装 Elastisearch

curl -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-9.0.0-darwin-x86_64.tar.gz
curl https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-9.0.0-darwin-x86_64.tar.gz.sha512 | shasum -a 512 -c -
tar -xzf elasticsearch-9.0.0-darwin-x86_64.tar.gz
cd elasticsearch-9.0.0/
./bin/elasticsearch

将 ES 注册到 Console 中。

安装 Agent

curl -O https://release.infinilabs.com/agent/stable/agent-1.29.2-2008-mac-amd64.zip
mkdir agent
unzip agent-1.29.2-2008-mac-amd64.zip -d agent/
cd agent

修改配置文件 agent.yml,填写正确的 Console 地址。

启动 Agent,成功注册到 Console,获取到相关配置,但连接 Console 系统集群出现异常,这是因为 Console 系统集群是 Docker 部署的(172.17.0.2 是 Docker 内部 IP)。

通过 Console 修改 Agent 配置。

注:Console 系统集群地址需调整为 Agent 可以访问的地址;配置版本号需要增大。

Agent 运行无异常。

Agent 注册 Console 成功后,在 Console 页面“资源管理”-“探针管理”中可以看到注册的 Agent 实例。

关联操作

Agent 关联到需要采集数据的 ES 集群。

调整监控模式

关联成功后,将 ES 集群的监控模式改为 Agent。

可在监控报表中,查看采集状态。

查看日志

至此日志功能已可以使用。

关于 INFINI Console

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

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

原文:https://infinilabs.cn/blog/2025/time-range-mergepolicy-for-easysearch/

继续阅读 »

前面介绍过 INFINI Console 纳管 Elasticsearch 9(一),进行指标监控、数据管理、DSL 语句执行,但日志监控功能需要结合 Agent 才能使用。现在来实现一下:

Agent 需要和 ES 部署到同一机器上,这里是在我本地电脑上进行安装。

安装 Elastisearch

curl -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-9.0.0-darwin-x86_64.tar.gz
curl https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-9.0.0-darwin-x86_64.tar.gz.sha512 | shasum -a 512 -c -
tar -xzf elasticsearch-9.0.0-darwin-x86_64.tar.gz
cd elasticsearch-9.0.0/
./bin/elasticsearch

将 ES 注册到 Console 中。

安装 Agent

curl -O https://release.infinilabs.com/agent/stable/agent-1.29.2-2008-mac-amd64.zip
mkdir agent
unzip agent-1.29.2-2008-mac-amd64.zip -d agent/
cd agent

修改配置文件 agent.yml,填写正确的 Console 地址。

启动 Agent,成功注册到 Console,获取到相关配置,但连接 Console 系统集群出现异常,这是因为 Console 系统集群是 Docker 部署的(172.17.0.2 是 Docker 内部 IP)。

通过 Console 修改 Agent 配置。

注:Console 系统集群地址需调整为 Agent 可以访问的地址;配置版本号需要增大。

Agent 运行无异常。

Agent 注册 Console 成功后,在 Console 页面“资源管理”-“探针管理”中可以看到注册的 Agent 实例。

关联操作

Agent 关联到需要采集数据的 ES 集群。

调整监控模式

关联成功后,将 ES 集群的监控模式改为 Agent。

可在监控报表中,查看采集状态。

查看日志

至此日志功能已可以使用。

关于 INFINI Console

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

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

原文:https://infinilabs.cn/blog/2025/time-range-mergepolicy-for-easysearch/

收起阅读 »

谈谈 ES 6.8 到 7.10 的功能变迁(4)- 聚合功能篇

这一篇我们继续了解 ES 7.10 相较于 ES 6.8 新增的聚合方法。

Rare Terms 聚合

功能说明

用于聚合查询出字段中的稀有项。ES 常见的统计方法是使用 term 查询的正向排序,但是在大数据量和高基数的数据分布场景下会出现 unbounded 错误。Rare 聚合弥补了这个场景的查询方法。注意的是,这个聚合计算出来的是一个近似值。

注意事项

使用限制

  • 只能用于 keyword、numeric、ip 或 boolean 类型字段
  • max_doc_count 参数限制文档数量(默认为 1)
  • precision_threshold 参数控制精度(默认为 3000)

性能考虑

  • 高基数(数据集中不同值的数量非常多)字段上性能较好
  • 内存消耗相对较大
  • 聚合是在 shard 层做的统计,建议使用合适的 shard 大小

精度控制

  • 结果是近似值,具体说明见此
  • 可以通过 precision_threshold 调整精度,精度越高,内存消耗越大

Cumulative Cardinality 聚合

功能说明

一个管道聚合,计算 histogram(或 date_histogram)聚合中的累积基数。 Cumulative_cardinality 聚合对于查找几个时间段内的"新项目"很有用,比如每天网站的新访客数量。常规 Cardinaity 聚合会告诉你每天有多少独立访客,但不会区分"新"或"重复"访客。Cumulative_cardinality 聚合可以用来确定每天有多少独立访问者是"新"的。

可以通过 precision_threshold 参数调整精度,内存消耗随精度增加而增加。建议根据实际需求调整精度,避免不必要的高精度设置。

使用要求

  • 需要一个 date_histogram 或 histogram 聚合
  • 需要一个 cardinality 度量聚合
  • buckets_path 必须指向一个有效的 cardinality 聚合

代码样例

GET /user_hits/_search
{
  "size": 0,
  "aggs": {
    "users_per_day": {
      "date_histogram": {
        "field": "timestamp",
        "calendar_interval": "day"
      },
      "aggs": {
        "distinct_users": {
          "cardinality": {
            "field": "user_id"
          }
        },
        "total_new_users": {
          "cumulative_cardinality": {
            "buckets_path": "distinct_users"
          }
        }
      }
    }
  }
}

Geotile Grid 聚合

功能说明

基于 geo_point 字段的地理位置多桶聚合。将地理空间数据按照网格划分,便于可视化和分析。

注意要点

  1. 网格设置: precision 参数控制网格精度(0-29),精度越高,网格越小,桶数越多。
  2. 高精度会产生大量桶,内存消耗随精度增加而增加。
  3. 只支持 geo_point 类型字段。

代码样例

POST /museums/_search?size=0
{
  "aggregations": {
    "tiles-in-bounds": {
      "geotile_grid": {
        "field": "location",
        "precision": 22,
        "bounds": {
          "top_left": "52.4, 4.9",
          "bottom_right": "52.3, 5.0"
        }
      }
    }
  }
}

T-test 聚合

功能说明

T_test 是一种统计假设检验,用于判断测试统计量在零假设下是否服从学生 t 分布(Student’s t-distribution)。它适用于从聚合文档中提取的数值或通过提供的脚本生成的数值。 该聚合将会返回该检验的 p 值(概率值)。它是在零假设正确的情况下(这意味着总体均值之间没有差异),获得至少与聚合所处理结果一样极端结果的概率。p 值越小,意味着零假设越有可能不正确,总体均值实际上是存在差异的。

关于 Student’s t-distribution

Student's t - distribution(学生 t - 分布),简称 t - 分布,是一种概率分布。它在统计学中具有重要地位,特别是在样本量较小且总体标准差未知的情况下用于对总体均值进行估计和假设检验。 它的形状类似于正态分布,呈钟形曲线,但比正态分布的 “尾部” 更厚。也就是说,t - 分布在均值两侧的极端值出现的概率比正态分布更高。

测试代码

GET node_upgrade/_search
{
  "size": 0,
  "aggs": {
    "startup_time_ttest": {
      "t_test": {
        "a": { "field": "startup_time_before" },
        "b": { "field": "startup_time_after" },
        "type": "paired"
      }
    }
  }
}

Variable Width Histogram 可变直方图聚合

功能说明

类似于 histogram 的多桶聚合。但与 histogram 不同,每个桶的宽度不是预先指定的,而是根据目标桶数量动态确定间隔

参数设置

  • field 必须是数值类型
  • buckets 参数指定目标桶数
  • 实际桶数可能少于指定值

性能考虑

  • 比固定宽度直方图更耗资源,大数据集上可能较慢
  • 建议限制目标桶数量

使用场景

  • 数据分布不均匀时特别有用
  • 适合探索性数据分析
  • 可以避免空桶或过密桶

Normalize 归一化聚合

功能说明

一个管道聚合,用于计算特定桶值的归一化或重新缩放后的值

方法选择

可以归一化处理的方法有:

  • rescale_0_1:0 到 1 重缩放,这种方法对数据进行重新缩放,使得最小值变为 0,最大值变为 1,其余数值则在两者之间进行线性归一化。
  • rescale_0_100:0 到 100 重缩放,该方法对数据进行重新缩放,让最小值变为 0,最大值变为 100,其余数值在它们之间按线性方式进行归一化。
  • percent_of_sum:占总和的百分比,此方法对每个值进行归一化,使其表示为占总值的百分比。
  • mean:均值归一化,这种方法进行归一化时,每个值依据其与平均值的差异程度来进行归一化。
  • zscore:Z 分数归一化,该方法进行归一化时,每个值表示的是其相对于标准差偏离均值的程度。
  • softmax:软最大化归一化,这种方法进行归一化时,先对每个值取指数,然后相对于原始值指数之和来进行归一化。

参数配置

  • method 参数指定归一化方法
  • buckets_path 指定数据来源
  • 可以设置缺失值处理

Moving Percentiles 聚合

功能介绍

一个管道聚合,对于一组有序的百分位数,移动百分位数聚合(Moving Percentile Aggregation)会在这些百分位数上滑动一个窗口,并计算累积百分位数。

关于 shift 偏移参数

默认情况下(偏移量 shift = 0 时),用于计算的窗口是除当前桶之外的最后 n 个值。将偏移量增加 1 会使起始窗口位置向右移动 1 个单位。

  • 若要将当前桶包含在窗口内,请使用 shift = 1。
  • 对于居中对齐(当前桶前后各有 n / 2 个值),使用 shift = window / 2。
  • 对于右对齐(当前桶之后有 n 个值),使用 shift = window。

如果窗口的任一边缘移动到数据序列边界之外,窗口将会收缩,仅包含可用的值。

Rate 聚合

功能说明

在 date_histogram 的聚合上使用,用于计算每个 date_histogram 桶中的文档速率或字段速率

rare 聚合支持多种时间单位(如秒、分、时),使用时需要明确指定单位。可以用来计算文档数或字段值,但必须与 date_histogram 一起使用。

小结

这一篇粗略的列举了 ES 7.10 版本中新增的聚合方法。相较于查询方法的高使用频率和低资源占用,聚合方法的使用频率相对较少,内存也会有一定的占用,大家可以根据实际场景选择使用。

推荐阅读

关于极限科技(INFINI Labs)

INFINI Labs

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

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

官网:https://infinilabs.cn

作者:金多安,极限科技(INFINI Labs)搜索运维专家,Elastic 认证专家,搜索客社区日报责任编辑。一直从事与搜索运维相关的工作,日常会去挖掘 ES / Lucene 方向的搜索技术原理,保持搜索相关技术发展的关注。
原文:https://infinilabs.cn/blog/2025/feature-evolution-from-elasticsearch-6.8-to-7.10-part-4/

继续阅读 »

这一篇我们继续了解 ES 7.10 相较于 ES 6.8 新增的聚合方法。

Rare Terms 聚合

功能说明

用于聚合查询出字段中的稀有项。ES 常见的统计方法是使用 term 查询的正向排序,但是在大数据量和高基数的数据分布场景下会出现 unbounded 错误。Rare 聚合弥补了这个场景的查询方法。注意的是,这个聚合计算出来的是一个近似值。

注意事项

使用限制

  • 只能用于 keyword、numeric、ip 或 boolean 类型字段
  • max_doc_count 参数限制文档数量(默认为 1)
  • precision_threshold 参数控制精度(默认为 3000)

性能考虑

  • 高基数(数据集中不同值的数量非常多)字段上性能较好
  • 内存消耗相对较大
  • 聚合是在 shard 层做的统计,建议使用合适的 shard 大小

精度控制

  • 结果是近似值,具体说明见此
  • 可以通过 precision_threshold 调整精度,精度越高,内存消耗越大

Cumulative Cardinality 聚合

功能说明

一个管道聚合,计算 histogram(或 date_histogram)聚合中的累积基数。 Cumulative_cardinality 聚合对于查找几个时间段内的"新项目"很有用,比如每天网站的新访客数量。常规 Cardinaity 聚合会告诉你每天有多少独立访客,但不会区分"新"或"重复"访客。Cumulative_cardinality 聚合可以用来确定每天有多少独立访问者是"新"的。

可以通过 precision_threshold 参数调整精度,内存消耗随精度增加而增加。建议根据实际需求调整精度,避免不必要的高精度设置。

使用要求

  • 需要一个 date_histogram 或 histogram 聚合
  • 需要一个 cardinality 度量聚合
  • buckets_path 必须指向一个有效的 cardinality 聚合

代码样例

GET /user_hits/_search
{
  "size": 0,
  "aggs": {
    "users_per_day": {
      "date_histogram": {
        "field": "timestamp",
        "calendar_interval": "day"
      },
      "aggs": {
        "distinct_users": {
          "cardinality": {
            "field": "user_id"
          }
        },
        "total_new_users": {
          "cumulative_cardinality": {
            "buckets_path": "distinct_users"
          }
        }
      }
    }
  }
}

Geotile Grid 聚合

功能说明

基于 geo_point 字段的地理位置多桶聚合。将地理空间数据按照网格划分,便于可视化和分析。

注意要点

  1. 网格设置: precision 参数控制网格精度(0-29),精度越高,网格越小,桶数越多。
  2. 高精度会产生大量桶,内存消耗随精度增加而增加。
  3. 只支持 geo_point 类型字段。

代码样例

POST /museums/_search?size=0
{
  "aggregations": {
    "tiles-in-bounds": {
      "geotile_grid": {
        "field": "location",
        "precision": 22,
        "bounds": {
          "top_left": "52.4, 4.9",
          "bottom_right": "52.3, 5.0"
        }
      }
    }
  }
}

T-test 聚合

功能说明

T_test 是一种统计假设检验,用于判断测试统计量在零假设下是否服从学生 t 分布(Student’s t-distribution)。它适用于从聚合文档中提取的数值或通过提供的脚本生成的数值。 该聚合将会返回该检验的 p 值(概率值)。它是在零假设正确的情况下(这意味着总体均值之间没有差异),获得至少与聚合所处理结果一样极端结果的概率。p 值越小,意味着零假设越有可能不正确,总体均值实际上是存在差异的。

关于 Student’s t-distribution

Student's t - distribution(学生 t - 分布),简称 t - 分布,是一种概率分布。它在统计学中具有重要地位,特别是在样本量较小且总体标准差未知的情况下用于对总体均值进行估计和假设检验。 它的形状类似于正态分布,呈钟形曲线,但比正态分布的 “尾部” 更厚。也就是说,t - 分布在均值两侧的极端值出现的概率比正态分布更高。

测试代码

GET node_upgrade/_search
{
  "size": 0,
  "aggs": {
    "startup_time_ttest": {
      "t_test": {
        "a": { "field": "startup_time_before" },
        "b": { "field": "startup_time_after" },
        "type": "paired"
      }
    }
  }
}

Variable Width Histogram 可变直方图聚合

功能说明

类似于 histogram 的多桶聚合。但与 histogram 不同,每个桶的宽度不是预先指定的,而是根据目标桶数量动态确定间隔

参数设置

  • field 必须是数值类型
  • buckets 参数指定目标桶数
  • 实际桶数可能少于指定值

性能考虑

  • 比固定宽度直方图更耗资源,大数据集上可能较慢
  • 建议限制目标桶数量

使用场景

  • 数据分布不均匀时特别有用
  • 适合探索性数据分析
  • 可以避免空桶或过密桶

Normalize 归一化聚合

功能说明

一个管道聚合,用于计算特定桶值的归一化或重新缩放后的值

方法选择

可以归一化处理的方法有:

  • rescale_0_1:0 到 1 重缩放,这种方法对数据进行重新缩放,使得最小值变为 0,最大值变为 1,其余数值则在两者之间进行线性归一化。
  • rescale_0_100:0 到 100 重缩放,该方法对数据进行重新缩放,让最小值变为 0,最大值变为 100,其余数值在它们之间按线性方式进行归一化。
  • percent_of_sum:占总和的百分比,此方法对每个值进行归一化,使其表示为占总值的百分比。
  • mean:均值归一化,这种方法进行归一化时,每个值依据其与平均值的差异程度来进行归一化。
  • zscore:Z 分数归一化,该方法进行归一化时,每个值表示的是其相对于标准差偏离均值的程度。
  • softmax:软最大化归一化,这种方法进行归一化时,先对每个值取指数,然后相对于原始值指数之和来进行归一化。

参数配置

  • method 参数指定归一化方法
  • buckets_path 指定数据来源
  • 可以设置缺失值处理

Moving Percentiles 聚合

功能介绍

一个管道聚合,对于一组有序的百分位数,移动百分位数聚合(Moving Percentile Aggregation)会在这些百分位数上滑动一个窗口,并计算累积百分位数。

关于 shift 偏移参数

默认情况下(偏移量 shift = 0 时),用于计算的窗口是除当前桶之外的最后 n 个值。将偏移量增加 1 会使起始窗口位置向右移动 1 个单位。

  • 若要将当前桶包含在窗口内,请使用 shift = 1。
  • 对于居中对齐(当前桶前后各有 n / 2 个值),使用 shift = window / 2。
  • 对于右对齐(当前桶之后有 n 个值),使用 shift = window。

如果窗口的任一边缘移动到数据序列边界之外,窗口将会收缩,仅包含可用的值。

Rate 聚合

功能说明

在 date_histogram 的聚合上使用,用于计算每个 date_histogram 桶中的文档速率或字段速率

rare 聚合支持多种时间单位(如秒、分、时),使用时需要明确指定单位。可以用来计算文档数或字段值,但必须与 date_histogram 一起使用。

小结

这一篇粗略的列举了 ES 7.10 版本中新增的聚合方法。相较于查询方法的高使用频率和低资源占用,聚合方法的使用频率相对较少,内存也会有一定的占用,大家可以根据实际场景选择使用。

推荐阅读

关于极限科技(INFINI Labs)

INFINI Labs

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

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

官网:https://infinilabs.cn

作者:金多安,极限科技(INFINI Labs)搜索运维专家,Elastic 认证专家,搜索客社区日报责任编辑。一直从事与搜索运维相关的工作,日常会去挖掘 ES / Lucene 方向的搜索技术原理,保持搜索相关技术发展的关注。
原文:https://infinilabs.cn/blog/2025/feature-evolution-from-elasticsearch-6.8-to-7.10-part-4/

收起阅读 »

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

1、Easysearch 时序数据的基于时间范围的合并策略
https://mp.weixin.qq.com/s/EPoD1VzQY5kUNI2vrJc52Q

2、INFINI Console 纳管 Elasticsearch 9
https://infinilabs.cn/blog/202 ... -es9/

3、向量相似度检索遇到天花板,是否我们走错了?
https://mp.weixin.qq.com/s/4f8RaqPgBS7Wm5_z68U9vQ

4、基于 MCP 的 AI Agent 应用开发实践
https://mp.weixin.qq.com/s/hpnE0JTFpF2V9PMuo0hVnw

5、【GitTalk 直播回放】使用 Coco AI 打造 Elasticsearch 智能助手
https://www.bilibili.com/video/BV1rAGyzGEQo/

编辑:Fred
更多资讯:http://news.searchkit.cn
继续阅读 »
1、Easysearch 时序数据的基于时间范围的合并策略
https://mp.weixin.qq.com/s/EPoD1VzQY5kUNI2vrJc52Q

2、INFINI Console 纳管 Elasticsearch 9
https://infinilabs.cn/blog/202 ... -es9/

3、向量相似度检索遇到天花板,是否我们走错了?
https://mp.weixin.qq.com/s/4f8RaqPgBS7Wm5_z68U9vQ

4、基于 MCP 的 AI Agent 应用开发实践
https://mp.weixin.qq.com/s/hpnE0JTFpF2V9PMuo0hVnw

5、【GitTalk 直播回放】使用 Coco AI 打造 Elasticsearch 智能助手
https://www.bilibili.com/video/BV1rAGyzGEQo/

编辑:Fred
更多资讯:http://news.searchkit.cn 收起阅读 »

INFINI Console 纳管 Elasticsearch 9(一):指标监控、数据管理、DSL 语句执行

Elasticsearch v9.0 版本最近已发布,而 INFINI Console 作为一款开源的非常轻量级的多集群、跨版本的搜索基础设施统一管控平台,是否支持最新的 Elasticsearch v9.0 集群管理呢?本文以 INFINI Console v1.29.2 为例,从指标监控、数据管理、DSL 语句执行等方面进行测试。

部署注册

使用 Docker 快速部署 ES9。

docker run --name es9 -p 9201:9200 -it -m 1GB docker.elastic.co/elasticsearch/elasticsearch:9.0.0

使用 Docker 部署 Console,请参考文档

docker run -d --name console -p 9001:9000 infinilabs/console:1.29.2-2008

将 ES9 注册到 Console,默认采集模式为 Agentless。

请求模拟

使用 Loadgen 模拟数据写入和查询。

env:
  ES_USERNAME: elastic
  ES_PASSWORD: CZ-FHm+M5cbfee_yMPZp
  ES_ENDPOINT: https://192.168.0.101:9201

runner:
#  total_rounds: 1
  no_warm: true
  valid_status_codes_during_warmup: [ 200,201,404 ]
  # Whether to log all requests
  log_requests: false
  # Whether to log all requests with the specified response status
  log_status_codes:
    - 0
    - 500
  assert_invalid: false
  assert_error: false
  # Whether to reset the context, including variables, runtime KV pairs, etc.,
  # before this test run.
  reset_context: false
  default_endpoint: $[[env.ES_ENDPOINT]]
  default_basic_auth:
    username: $[[env.ES_USERNAME]]
    password: $[[env.ES_PASSWORD]]

variables:
  - name: id
    type: sequence
  - name: uuid
    type: uuid
  - name: now_local
    type: now_local
  - name: now_unix
    type: now_unix
  - name: list
    type: list
    data:
      - "medcl"
      - "abc"
      - "efg"
      - "xyz"

requests:
  - request: #prepare some docs
      method: POST
      url: /_bulk
      body_repeat_times: 5000
      body: |
        {"index": {"_index": "infinilabs", "_id": "$[[uuid]]"}}
        {"id": "$[[id]]", "field1": "$[[list]]", "now_local": "$[[now_local]]", "now_unix": "$[[now_unix]]"}

  - request:
      method: GET
      url: infinilabs/_search
      body: |
        {"query":{"term":{"id":"$[[id]]"}}}
./loadgen-mac-amd64 -d 300

平台管理

平台概览

监控报表

  • 指标概览

  • 集群指标

  • 节点指标

  • 索引指标

  • 节点线程指标

  • 节点热力图

  • 索引热力图

  • 查看日志

日志采集需要安装 Agent,关于这块功能后续会进行介绍。

  • 节点实时指标

  • 索引实时指标

数据管理

开发工具

总结

经过测试,INFINI Console 可以支持 Elasticsearch 9 集群纳管,大家可以下载体验使用。

关于 INFINI Console

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

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

原文:https://infinilabs.cn/blog/2025/time-range-mergepolicy-for-easysearch/

继续阅读 »

Elasticsearch v9.0 版本最近已发布,而 INFINI Console 作为一款开源的非常轻量级的多集群、跨版本的搜索基础设施统一管控平台,是否支持最新的 Elasticsearch v9.0 集群管理呢?本文以 INFINI Console v1.29.2 为例,从指标监控、数据管理、DSL 语句执行等方面进行测试。

部署注册

使用 Docker 快速部署 ES9。

docker run --name es9 -p 9201:9200 -it -m 1GB docker.elastic.co/elasticsearch/elasticsearch:9.0.0

使用 Docker 部署 Console,请参考文档

docker run -d --name console -p 9001:9000 infinilabs/console:1.29.2-2008

将 ES9 注册到 Console,默认采集模式为 Agentless。

请求模拟

使用 Loadgen 模拟数据写入和查询。

env:
  ES_USERNAME: elastic
  ES_PASSWORD: CZ-FHm+M5cbfee_yMPZp
  ES_ENDPOINT: https://192.168.0.101:9201

runner:
#  total_rounds: 1
  no_warm: true
  valid_status_codes_during_warmup: [ 200,201,404 ]
  # Whether to log all requests
  log_requests: false
  # Whether to log all requests with the specified response status
  log_status_codes:
    - 0
    - 500
  assert_invalid: false
  assert_error: false
  # Whether to reset the context, including variables, runtime KV pairs, etc.,
  # before this test run.
  reset_context: false
  default_endpoint: $[[env.ES_ENDPOINT]]
  default_basic_auth:
    username: $[[env.ES_USERNAME]]
    password: $[[env.ES_PASSWORD]]

variables:
  - name: id
    type: sequence
  - name: uuid
    type: uuid
  - name: now_local
    type: now_local
  - name: now_unix
    type: now_unix
  - name: list
    type: list
    data:
      - "medcl"
      - "abc"
      - "efg"
      - "xyz"

requests:
  - request: #prepare some docs
      method: POST
      url: /_bulk
      body_repeat_times: 5000
      body: |
        {"index": {"_index": "infinilabs", "_id": "$[[uuid]]"}}
        {"id": "$[[id]]", "field1": "$[[list]]", "now_local": "$[[now_local]]", "now_unix": "$[[now_unix]]"}

  - request:
      method: GET
      url: infinilabs/_search
      body: |
        {"query":{"term":{"id":"$[[id]]"}}}
./loadgen-mac-amd64 -d 300

平台管理

平台概览

监控报表

  • 指标概览

  • 集群指标

  • 节点指标

  • 索引指标

  • 节点线程指标

  • 节点热力图

  • 索引热力图

  • 查看日志

日志采集需要安装 Agent,关于这块功能后续会进行介绍。

  • 节点实时指标

  • 索引实时指标

数据管理

开发工具

总结

经过测试,INFINI Console 可以支持 Elasticsearch 9 集群纳管,大家可以下载体验使用。

关于 INFINI Console

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

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

原文:https://infinilabs.cn/blog/2025/time-range-mergepolicy-for-easysearch/

收起阅读 »

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

1.vGPU 是伪命题?NVIDIA 官方为什么不自己出细粒度共享呢?
https://mp.weixin.qq.com/s/f53_CecLm_0oAihf5qHVew
2.vLLM + LWS:Kubernetes 上的多机多卡推理方案
https://mp.weixin.qq.com/s/RTSx9LqNuLZ_GPsrgbWDBw
3.MCP 最新版本 9 大差异解读:授权机制、传输协议、批处理、工具元数据...
https://mp.weixin.qq.com/s/xiZd0gHmLr3mNqHvU3Ca1w
4.训练100B模型要多少显存?
https://mp.weixin.qq.com/s/tdPrtsxOfnpyQzE25psdUQ

编辑:Se7en
更多资讯:http://news.searchkit.cn
继续阅读 »
1.vGPU 是伪命题?NVIDIA 官方为什么不自己出细粒度共享呢?
https://mp.weixin.qq.com/s/f53_CecLm_0oAihf5qHVew
2.vLLM + LWS:Kubernetes 上的多机多卡推理方案
https://mp.weixin.qq.com/s/RTSx9LqNuLZ_GPsrgbWDBw
3.MCP 最新版本 9 大差异解读:授权机制、传输协议、批处理、工具元数据...
https://mp.weixin.qq.com/s/xiZd0gHmLr3mNqHvU3Ca1w
4.训练100B模型要多少显存?
https://mp.weixin.qq.com/s/tdPrtsxOfnpyQzE25psdUQ

编辑:Se7en
更多资讯:http://news.searchkit.cn 收起阅读 »

Easysearch 时序数据的基于时间范围的合并策略

如果你正在使用 Easysearch 处理日志、监控指标、事件流或其他任何具有时间顺序的数据,那么你一定知道索引的性能和效率至关重要。Easysearch 底层的 Lucene Segment 合并是保持搜索和索引性能的关键后台任务。然而,你是否意识到,默认的合并策略可能并不是处理时序数据的最佳选择?

今天,我们就来介绍 Easysearch 1.12.1 版本起引入的一个重要优化:基于时间范围的合并策略 (TimeRangeMergePolicy) ,它专门为优化时序数据的 Segment 合并而生。

时序数据的合并挑战:默认策略的局限性

Easysearch 默认使用的合并策略(如 TieredMergePolicy)非常智能,它会根据 Segment 的大小、文档删除比例等因素来决定合并哪些 Segment,以平衡查询性能和资源使用。

但在时序数据场景下,这种通用策略可能会遇到一些问题:

  1. 冷热数据混合: 想象一下,几个月前的旧日志数据(冷数据)可能因为大小合适而被选中,与最近几小时内产生的新数据(热数据)进行合并。这会带来不必要的 I/O 和 CPU 开销,因为冷数据通常访问很少,合并它们对查询性能的提升有限,反而消耗了宝贵的资源。
  2. 查询性能影响: 合并可能产生覆盖时间跨度非常大的 Segment。当你执行按时间范围过滤的查询时(这在时序场景中非常常见),查询可能需要扫描这些巨大的 Segment,即使其中大部分数据都不在你的目标时间范围内,从而降低查询效率。

解决方案:TimeRangeMergePolicy 登场!

为了解决上述痛点,Easysearch 引入了 TimeRangeMergePolicy。顾名思义,这种策略在做合并决策时,将时间维度纳入了核心考量

它的核心思想很简单,但非常有效:

  • 时间优先: 倾向于合并那些时间上相邻或接近的 Segment。比如,属于同一天或同一小时的 Segment 更有可能被一起合并。
  • 保留时间分区: 尽量避免将时间跨度极大的 Segment 合并在一起。这有助于保持数据的“时间局部性”,使得按时间范围查询时能更快地排除不相关的 Segment。
  • 优先合并新数据: 通常,新产生的数据(热数据)更新和删除操作更频繁。优先合并包含较新数据的 Segment,有助于更快地回收被删除文档占用的空间,并优化对最新数据的查询性能。

如何为你的时序索引启用 TimeRangeMergePolicy?

启用这个功能非常简单,只需要两步:

  1. 确认日期字段: 首先,确保你的索引 Mapping 中有一个能准确代表数据时间的字段,通常是日期(date)或时间戳(date_nanos)类型,例如 @timestampevent_time 等。这个字段的值应该反映数据产生的实际时间。
  2. 更新索引设置: 使用 Index Settings API,为你的索引指定 index.merge.policy.time_range_field 参数,并将其值设置为你的时间字段名。

示例:

假设你的时间字段是 timestamp,索引名称是 my-timeseries-index,你可以执行以下请求:

PUT /my-timeseries-index/_settings
{
  "index": {
    "merge.policy.time_range_field": "timestamp"
  }
}

搞定!设置之后,my-timeseries-index 后续的 Segment 合并就会自动采用 TimeRangeMergePolicy 了。

专家提示: 如果你想让所有新创建的时序索引默认就使用这个策略,可以将这个设置添加到你的索引模板 (Index Template) 中。

TimeRangeMergePolicy 的优势

启用时间范围合并策略能带来哪些好处呢?

  • 降低合并开销: 显著减少冷热数据的无效合并,节省 I/O 和 CPU 资源。
  • 提高资源效率: 更智能的合并有助于更快地回收已删除文档的空间,并可能降低整体计算资源的使用。
  • 优化查询性能: 保持 Segment 的时间局部性,对于按时间范围过滤的查询(例如,“查询过去一小时的日志”)可能会有明显的性能提升。
  • 对时序数据更友好: 该策略的设计初衷就是为了更好地服务于日志、指标这类严格按时间增长的数据模式。

注意事项

在使用 TimeRangeMergePolicy 时,有几点需要注意:

  • 时间字段是关键: 策略的效果高度依赖于你所指定的 time_range_field。如果该字段不存在,或者字段中的时间值混乱、不准确,策略可能无法发挥预期效果,甚至适得其反。
  • 并非万能丹: 这个策略最适合具有明确时间序列特征的数据。对于非时序数据(例如,商品信息、用户信息索引),默认的 TieredMergePolicy 可能仍然是更好的选择。
  • 版本要求: 请确保你的 Easysearch 集群版本至少为 1.12.1

总结

对于处理大量时序数据的 Easysearch 用户来说,TimeRangeMergePolicy 是一个非常有价值的优化工具。通过感知数据的时间属性,它可以让 Segment 合并操作更加智能和高效,从而降低资源消耗、提升查询性能。如果你的索引符合时序数据的特征,并且正在运行 Easysearch 1.12.1 或更高版本,不妨尝试启用这个策略,看看它能否为你的集群带来改善!

关于 Easysearch

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

官网文档:https://docs.infinilabs.com/easysearch

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

继续阅读 »

如果你正在使用 Easysearch 处理日志、监控指标、事件流或其他任何具有时间顺序的数据,那么你一定知道索引的性能和效率至关重要。Easysearch 底层的 Lucene Segment 合并是保持搜索和索引性能的关键后台任务。然而,你是否意识到,默认的合并策略可能并不是处理时序数据的最佳选择?

今天,我们就来介绍 Easysearch 1.12.1 版本起引入的一个重要优化:基于时间范围的合并策略 (TimeRangeMergePolicy) ,它专门为优化时序数据的 Segment 合并而生。

时序数据的合并挑战:默认策略的局限性

Easysearch 默认使用的合并策略(如 TieredMergePolicy)非常智能,它会根据 Segment 的大小、文档删除比例等因素来决定合并哪些 Segment,以平衡查询性能和资源使用。

但在时序数据场景下,这种通用策略可能会遇到一些问题:

  1. 冷热数据混合: 想象一下,几个月前的旧日志数据(冷数据)可能因为大小合适而被选中,与最近几小时内产生的新数据(热数据)进行合并。这会带来不必要的 I/O 和 CPU 开销,因为冷数据通常访问很少,合并它们对查询性能的提升有限,反而消耗了宝贵的资源。
  2. 查询性能影响: 合并可能产生覆盖时间跨度非常大的 Segment。当你执行按时间范围过滤的查询时(这在时序场景中非常常见),查询可能需要扫描这些巨大的 Segment,即使其中大部分数据都不在你的目标时间范围内,从而降低查询效率。

解决方案:TimeRangeMergePolicy 登场!

为了解决上述痛点,Easysearch 引入了 TimeRangeMergePolicy。顾名思义,这种策略在做合并决策时,将时间维度纳入了核心考量

它的核心思想很简单,但非常有效:

  • 时间优先: 倾向于合并那些时间上相邻或接近的 Segment。比如,属于同一天或同一小时的 Segment 更有可能被一起合并。
  • 保留时间分区: 尽量避免将时间跨度极大的 Segment 合并在一起。这有助于保持数据的“时间局部性”,使得按时间范围查询时能更快地排除不相关的 Segment。
  • 优先合并新数据: 通常,新产生的数据(热数据)更新和删除操作更频繁。优先合并包含较新数据的 Segment,有助于更快地回收被删除文档占用的空间,并优化对最新数据的查询性能。

如何为你的时序索引启用 TimeRangeMergePolicy?

启用这个功能非常简单,只需要两步:

  1. 确认日期字段: 首先,确保你的索引 Mapping 中有一个能准确代表数据时间的字段,通常是日期(date)或时间戳(date_nanos)类型,例如 @timestampevent_time 等。这个字段的值应该反映数据产生的实际时间。
  2. 更新索引设置: 使用 Index Settings API,为你的索引指定 index.merge.policy.time_range_field 参数,并将其值设置为你的时间字段名。

示例:

假设你的时间字段是 timestamp,索引名称是 my-timeseries-index,你可以执行以下请求:

PUT /my-timeseries-index/_settings
{
  "index": {
    "merge.policy.time_range_field": "timestamp"
  }
}

搞定!设置之后,my-timeseries-index 后续的 Segment 合并就会自动采用 TimeRangeMergePolicy 了。

专家提示: 如果你想让所有新创建的时序索引默认就使用这个策略,可以将这个设置添加到你的索引模板 (Index Template) 中。

TimeRangeMergePolicy 的优势

启用时间范围合并策略能带来哪些好处呢?

  • 降低合并开销: 显著减少冷热数据的无效合并,节省 I/O 和 CPU 资源。
  • 提高资源效率: 更智能的合并有助于更快地回收已删除文档的空间,并可能降低整体计算资源的使用。
  • 优化查询性能: 保持 Segment 的时间局部性,对于按时间范围过滤的查询(例如,“查询过去一小时的日志”)可能会有明显的性能提升。
  • 对时序数据更友好: 该策略的设计初衷就是为了更好地服务于日志、指标这类严格按时间增长的数据模式。

注意事项

在使用 TimeRangeMergePolicy 时,有几点需要注意:

  • 时间字段是关键: 策略的效果高度依赖于你所指定的 time_range_field。如果该字段不存在,或者字段中的时间值混乱、不准确,策略可能无法发挥预期效果,甚至适得其反。
  • 并非万能丹: 这个策略最适合具有明确时间序列特征的数据。对于非时序数据(例如,商品信息、用户信息索引),默认的 TieredMergePolicy 可能仍然是更好的选择。
  • 版本要求: 请确保你的 Easysearch 集群版本至少为 1.12.1

总结

对于处理大量时序数据的 Easysearch 用户来说,TimeRangeMergePolicy 是一个非常有价值的优化工具。通过感知数据的时间属性,它可以让 Segment 合并操作更加智能和高效,从而降低资源消耗、提升查询性能。如果你的索引符合时序数据的特征,并且正在运行 Easysearch 1.12.1 或更高版本,不妨尝试启用这个策略,看看它能否为你的集群带来改善!

关于 Easysearch

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

官网文档:https://docs.infinilabs.com/easysearch

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

收起阅读 »

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

1.RAG 2.0 深入解读
https://mp.weixin.qq.com/s/pe9r6OSCI6l5ocUw1LHmMw

2.利用 NLP 的强大功能为 RAG 和 GraphRAG 应用程序构建混合图(搭梯)
https://medium.com/%40irina.ka ... e2adb

3.使用 LLM 将非结构化文本转换为交互式知识图谱(搭梯)
https://medium.com/%40robert-m ... 71cd6


编辑:kin122    
更多资讯:http://news.searchkit.cn
继续阅读 »
1.RAG 2.0 深入解读
https://mp.weixin.qq.com/s/pe9r6OSCI6l5ocUw1LHmMw

2.利用 NLP 的强大功能为 RAG 和 GraphRAG 应用程序构建混合图(搭梯)
https://medium.com/%40irina.ka ... e2adb

3.使用 LLM 将非结构化文本转换为交互式知识图谱(搭梯)
https://medium.com/%40robert-m ... 71cd6


编辑:kin122    
更多资讯:http://news.searchkit.cn 收起阅读 »

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


1. 2025了,opensearch 和 elasticsearch 还能掰腕子吗(需要梯子)
https://medium.com/%40FrankGoo ... 33422
2. 解锁可观测性的封印,你得这么做(需要梯子)
https://ninad-desai.medium.com ... e0210
3. 保证生产稳定的妙招,“真实”模拟(需要梯子)
https://arshadeveloper.medium. ... 8f436
编辑:斯蒂文
更多资讯:http://news.searchkit.cn
 
继续阅读 »

1. 2025了,opensearch 和 elasticsearch 还能掰腕子吗(需要梯子)
https://medium.com/%40FrankGoo ... 33422
2. 解锁可观测性的封印,你得这么做(需要梯子)
https://ninad-desai.medium.com ... e0210
3. 保证生产稳定的妙招,“真实”模拟(需要梯子)
https://arshadeveloper.medium. ... 8f436
编辑:斯蒂文
更多资讯:http://news.searchkit.cn
  收起阅读 »

【搜索客社区日报】第2030期 (2025-04-29)

1. 用了这么久的ES,让我们回头看看它自己(需要梯子)
https://medium.com/%40unicorn- ... 151e2
2. ES VS. Doris,腾讯音乐如何抉择(需要梯子)
https://medium.com/%40ApacheDo ... 35611
3. ES,让航班信息尽在掌握(需要梯子)
https://medium.com/gitconnecte ... 9a3b0
编辑:斯蒂文
更多资讯:http://news.searchkit.cn
 
继续阅读 »
1. 用了这么久的ES,让我们回头看看它自己(需要梯子)
https://medium.com/%40unicorn- ... 151e2
2. ES VS. Doris,腾讯音乐如何抉择(需要梯子)
https://medium.com/%40ApacheDo ... 35611
3. ES,让航班信息尽在掌握(需要梯子)
https://medium.com/gitconnecte ... 9a3b0
编辑:斯蒂文
更多资讯:http://news.searchkit.cn
  收起阅读 »

INFINI Labs 产品更新 | Coco AI 0.4 发布 – 完善小助手设置,添加MCP支持

release

INFINI Labs 产品更新发布!此次更新涵盖 Coco AI 、Easysearch 等产品多项重要升级,重点提升 AI 搜索能力、易用性及企业级优化。

  • Coco AI v0.4 作为 开源、跨平台的 AI 搜索工具,完善小助手设置,添加 MCP 支持。
  • Coco AI Server 新增模型提供商管理,AI 助手设置和大量优化改进。
  • INFINI Easysearch v1.12.1 修复上个版本引入的数个问题。
  • INFINI Console、Gateway、Agent、Loadgen、Framework 关键问题修复,优化 HTTP 请求压缩,修复一些界面问题。

Coco AI v0.4

Coco AI 是一个完全开源、跨平台的统一 AI 搜索与效率工具,能够连接并搜索多种数据源,包括应用程序、文件、谷歌网盘、Notion、语雀、Hugo 等本地与云端数据。通过接入 DeepSeek 等大模型,Coco AI 实现了智能化的个人知识库管理,注重隐私,支持私有部署,帮助用户快速、智能地访问信息。

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

Coco AI 客户端 v0.4.0

Coco AI 服务端 v0.4.0

功能更新

  • 新增聊天会话管理 API
  • 支持字体图标
  • 新增 AI 助手设置
  • 新增 MCP 服务器管理
  • 新增模型提供商管理
  • 新增版本及授权信息

问题修复

  • 修复了语雀连接器对个人令牌支持不完善的问题
  • 修复嵌入组件包装器中的 Content-Type 头错误问题
  • 修复默认登录 URL 不可更改的问题

优化改进

  • 内置连接器图标资源设置为只读
  • 支持设置嵌入组件的图标和占位符
  • 优化嵌入组件搜索框 UI
  • 重构优化安全插件
  • 嵌入组件主题样式设置为 auto 时搜索框主题样式跟随系统
  • 嵌入组件支持设置推荐话题
  • 跳过处理已禁用的嵌入组件包装器
  • 创建 google drive 类型数据源时,如果缺少必要设置,引导用户去设置
  • 默认使用 Go Module 管理模块依赖
  • 图标组件支持用户输入 URL 地址配置图标
  • 更新默认查询模版

INFINI Easysearch v1.12.1

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

Easysearch 本次更新如下:

问题修复

  • 修复 ollama_url 不能动态更新的错误
  • 修复 ollama api 未正确兼容单个文本请求
  • 索引生命周期管理 delete action 按文档最新时间删除时修正为按降序排序

INFINI Console v1.29.3

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

Console 在线体验:

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

Console 本次更新如下:

问题修复

  • 修复删除索引后重建索引缓存问题
  • 修复 qps 相关指标展示时的小数位数
  • 修复队列数据查看不弹窗问题
  • 修复索引管理别名跳转 404 问题
  • 修复初始化界面集群地址不正确问题

优化改进

  • http 处理器开启压缩默认配置
  • 增加初始化模板,对于 Easysearch >= 1.12.1 开启新的模板

INFINI Gateway v1.29.3

INFINI Gateway 是一个开源的面向搜索场景的高性能数据网关,所有请求都经过网关处理后再转发到后端的搜索业务集群。基于 INFINI Gateway 可以实现索引级别的限速限流、常见查询的缓存加速、查询请求的审计、查询结果的动态修改等等。

Gateway 本次更新如下:

优化改进

  • 同步更新 Framework v1.1.6 优化了一些已知问题
  • 实现 HTTP 处理器请求压缩支持

INFINI Agent v1.29.2

INFINI Agent 负责采集和上传 Elasticsearch, Easysearch, Opensearch 集群的日志和指标信息,通过 INFINI Console 管理,支持主流操作系统和平台,安装包轻量且无任何外部依赖,可以快速方便地安装。

Agent 本次更新如下:

优化改进

  • 同步更新 Framework v1.1.6 优化了一些已知问题
  • 优化节点发现日志输出

INFINI Loadgen v1.29.3

INFINI Loadgen 是一款开源的专为 Easysearch、Elasticsearch、OpenSearch 设计的轻量级性能测试工具。

Loadgen 本次更新如下:

优化改进

INFINI Framework v1.1.6

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

Framework 本次更新如下:

重大变更

  • 添加 Elasticsearch v9 的适配器

功能更新

  • 在 ORM 模块中添加对 query_stringprefix 查询的支持
  • 为 HTTP 处理器添加压缩支持
  • 允许在设置(setup)完成后注册回调函数

问题修复

  • 修复 WriteHeader 函数,防止重复写入状态码
  • 确保在 HTTP 处理器中写入响应前,先设置 200 状态码
  • 检测到管道配置变化时,重新加载并通知相关模块
  • 修正默认设置为绿色时,不记录集群状态丢失的问题

优化改进

  • 添加获取实例 ID 的工具函数
  • 添加删除会话键的工具函数
  • 更新 Profile 结构体
  • 设置服务重启策略为 "always"
  • 添加针对“未找到记录”场景写入响应的工具函数
  • 默认支持 Go Modules

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

期待反馈

欢迎下载体验使用,如果您在使用过程中遇到如何疑问或者问题,欢迎前往 INFINI Labs Github(https://github.com/infinilabs) 中的对应项目中提交 Feature Request 或提交 Bug。

下载地址: https://infinilabs.cn/download

邮件hello@infini.ltd

电话(+86) 400-139-9200

Discordhttps://discord.gg/4tKTMkkvVX

也欢迎大家微信扫码添加小助手(INFINI-Labs),加入用户群一起讨论交流。

关于极限科技(INFINI Labs)

INFINI Labs

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

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

官网:https://infinilabs.cn

继续阅读 »

release

INFINI Labs 产品更新发布!此次更新涵盖 Coco AI 、Easysearch 等产品多项重要升级,重点提升 AI 搜索能力、易用性及企业级优化。

  • Coco AI v0.4 作为 开源、跨平台的 AI 搜索工具,完善小助手设置,添加 MCP 支持。
  • Coco AI Server 新增模型提供商管理,AI 助手设置和大量优化改进。
  • INFINI Easysearch v1.12.1 修复上个版本引入的数个问题。
  • INFINI Console、Gateway、Agent、Loadgen、Framework 关键问题修复,优化 HTTP 请求压缩,修复一些界面问题。

Coco AI v0.4

Coco AI 是一个完全开源、跨平台的统一 AI 搜索与效率工具,能够连接并搜索多种数据源,包括应用程序、文件、谷歌网盘、Notion、语雀、Hugo 等本地与云端数据。通过接入 DeepSeek 等大模型,Coco AI 实现了智能化的个人知识库管理,注重隐私,支持私有部署,帮助用户快速、智能地访问信息。

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

Coco AI 客户端 v0.4.0

Coco AI 服务端 v0.4.0

功能更新

  • 新增聊天会话管理 API
  • 支持字体图标
  • 新增 AI 助手设置
  • 新增 MCP 服务器管理
  • 新增模型提供商管理
  • 新增版本及授权信息

问题修复

  • 修复了语雀连接器对个人令牌支持不完善的问题
  • 修复嵌入组件包装器中的 Content-Type 头错误问题
  • 修复默认登录 URL 不可更改的问题

优化改进

  • 内置连接器图标资源设置为只读
  • 支持设置嵌入组件的图标和占位符
  • 优化嵌入组件搜索框 UI
  • 重构优化安全插件
  • 嵌入组件主题样式设置为 auto 时搜索框主题样式跟随系统
  • 嵌入组件支持设置推荐话题
  • 跳过处理已禁用的嵌入组件包装器
  • 创建 google drive 类型数据源时,如果缺少必要设置,引导用户去设置
  • 默认使用 Go Module 管理模块依赖
  • 图标组件支持用户输入 URL 地址配置图标
  • 更新默认查询模版

INFINI Easysearch v1.12.1

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

Easysearch 本次更新如下:

问题修复

  • 修复 ollama_url 不能动态更新的错误
  • 修复 ollama api 未正确兼容单个文本请求
  • 索引生命周期管理 delete action 按文档最新时间删除时修正为按降序排序

INFINI Console v1.29.3

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

Console 在线体验:

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

Console 本次更新如下:

问题修复

  • 修复删除索引后重建索引缓存问题
  • 修复 qps 相关指标展示时的小数位数
  • 修复队列数据查看不弹窗问题
  • 修复索引管理别名跳转 404 问题
  • 修复初始化界面集群地址不正确问题

优化改进

  • http 处理器开启压缩默认配置
  • 增加初始化模板,对于 Easysearch >= 1.12.1 开启新的模板

INFINI Gateway v1.29.3

INFINI Gateway 是一个开源的面向搜索场景的高性能数据网关,所有请求都经过网关处理后再转发到后端的搜索业务集群。基于 INFINI Gateway 可以实现索引级别的限速限流、常见查询的缓存加速、查询请求的审计、查询结果的动态修改等等。

Gateway 本次更新如下:

优化改进

  • 同步更新 Framework v1.1.6 优化了一些已知问题
  • 实现 HTTP 处理器请求压缩支持

INFINI Agent v1.29.2

INFINI Agent 负责采集和上传 Elasticsearch, Easysearch, Opensearch 集群的日志和指标信息,通过 INFINI Console 管理,支持主流操作系统和平台,安装包轻量且无任何外部依赖,可以快速方便地安装。

Agent 本次更新如下:

优化改进

  • 同步更新 Framework v1.1.6 优化了一些已知问题
  • 优化节点发现日志输出

INFINI Loadgen v1.29.3

INFINI Loadgen 是一款开源的专为 Easysearch、Elasticsearch、OpenSearch 设计的轻量级性能测试工具。

Loadgen 本次更新如下:

优化改进

INFINI Framework v1.1.6

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

Framework 本次更新如下:

重大变更

  • 添加 Elasticsearch v9 的适配器

功能更新

  • 在 ORM 模块中添加对 query_stringprefix 查询的支持
  • 为 HTTP 处理器添加压缩支持
  • 允许在设置(setup)完成后注册回调函数

问题修复

  • 修复 WriteHeader 函数,防止重复写入状态码
  • 确保在 HTTP 处理器中写入响应前,先设置 200 状态码
  • 检测到管道配置变化时,重新加载并通知相关模块
  • 修正默认设置为绿色时,不记录集群状态丢失的问题

优化改进

  • 添加获取实例 ID 的工具函数
  • 添加删除会话键的工具函数
  • 更新 Profile 结构体
  • 设置服务重启策略为 "always"
  • 添加针对“未找到记录”场景写入响应的工具函数
  • 默认支持 Go Modules

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

期待反馈

欢迎下载体验使用,如果您在使用过程中遇到如何疑问或者问题,欢迎前往 INFINI Labs Github(https://github.com/infinilabs) 中的对应项目中提交 Feature Request 或提交 Bug。

下载地址: https://infinilabs.cn/download

邮件hello@infini.ltd

电话(+86) 400-139-9200

Discordhttps://discord.gg/4tKTMkkvVX

也欢迎大家微信扫码添加小助手(INFINI-Labs),加入用户群一起讨论交流。

关于极限科技(INFINI Labs)

INFINI Labs

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

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

官网:https://infinilabs.cn

收起阅读 »

【搜索客社区日报】第2029期 (2025-04-28)

1、Easysearch 移除 Data 节点注意事项
https://infinilabs.cn/blog/202 ... ions/

2、Easysearch S3 备份实战
https://mp.weixin.qq.com/s/3ClNHwfTSZrHYzLmBD1CzQ

3、Manus 完整版系统提示词
https://mp.weixin.qq.com/s/xT2R2o_P1DrQ3MJGmhZ_7w

4、Elasticsearch推理API设置分块策略
https://mp.weixin.qq.com/s/CIZfsNn_J4Q_n1kFlylx8w

5、Elasticsearch 8.18 ES|QL Join 功能实战
https://mp.weixin.qq.com/s/7ZUVuvabXF4L955ncs-Pqw

编辑:Muse
更多资讯:http://news.searchkit.cn
继续阅读 »
1、Easysearch 移除 Data 节点注意事项
https://infinilabs.cn/blog/202 ... ions/

2、Easysearch S3 备份实战
https://mp.weixin.qq.com/s/3ClNHwfTSZrHYzLmBD1CzQ

3、Manus 完整版系统提示词
https://mp.weixin.qq.com/s/xT2R2o_P1DrQ3MJGmhZ_7w

4、Elasticsearch推理API设置分块策略
https://mp.weixin.qq.com/s/CIZfsNn_J4Q_n1kFlylx8w

5、Elasticsearch 8.18 ES|QL Join 功能实战
https://mp.weixin.qq.com/s/7ZUVuvabXF4L955ncs-Pqw

编辑:Muse
更多资讯:http://news.searchkit.cn 收起阅读 »

谈谈 ES 6.8 到 7.10 的功能变迁(3)- 查询方法篇

上一篇咱们了解了 ES 7.10 相较于 ES 6.8 新增的字段类型,这一篇我们继续了解新增的查询方法。

Interval 间隔查询:

功能介绍

Interval 查询,词项间距查询,可以根据匹配词项的顺序、间距和接近度对文档进行排名。主要解决的查询场景“创建一个多搜索词匹配的查询,同时保留搜索词的顺序”,比 match phrase 更加符合需求场景,查询方法使用比 span 查询更简单。ES 后续版本想用 interval 查询逐步替代 span 查询。

注意事项

规则组合

  • 可以使用 prefix、wildcard、fuzzy 等规则
  • 通过设置 max_gaps 和 ordered 参数,可以控制词项间的最大间隙和顺序要求

性能考虑

  • 间隔查询比简单的词项匹配更消耗资源
  • 嵌套规则越多,性能开销越大
  • 建议合理使用 maxGaps 参数限制间距

使用限制

  • 只能用于 text 字段
  • 不支持跨字段查询
  • 不支持对数值类型字段使用

Distance feature 查询

功能说明

时间/地理距离特性查询,该查询用于查找更接近被查询日期和地理位置的结果。 日期和位置分别是声明为 date 和 geo_point 数据类型的字段。返回结果的字段值不需要完全等于被查询值,而是按照给定日期或给定位置的进度算分,越是接近被查询值,在相关性得分中被评为更高

字段类型要求

  • 日期字段必须是 date 类型,地理位置字段必须是 geo_point 类型
  • 不支持其他类型的距离计算

评分机制

  • 距离越近,得分越高
  • 使用 boost 参数调整权重
  • 可以与其他查询组合使用

性能考虑

  • 地理距离计算较为耗费资源,建议使用合适的索引优化地理查询,比如:考虑使用地理网格索引提升性能

Pinned 查询

功能说明

实现对某些文档的置顶功能,使用存储在_id 字段中的文档 ID 来标识升级或“固定”的文档。
此功能通常用于引导搜索者查找精选的文档,这些文档在搜索的任何 “organic” 匹配项之上被提升。当查询中有排序时,pinned 查询失效

使用限制

  • 不能与自定义排序一起使用
  • 置顶文档必须存在于索引中
  • 最多支持 100 个置顶文档

排序规则

  • 置顶文档按照 ids 数组中的顺序排序
  • organic 查询结果按照相关性得分排序
  • 置顶文档始终在 organic 结果之前

PIT 查询

功能说明

Point in time 查询是一个轻量级的视图,根据保留周期保留 PIT 查询发生时数据的状态,用于不同条件的深度分页查询。

scroll 滚动搜索及其上下文与查询内容绑定。这意味着编写一个查询,添加一个滚动参数,来自这个查询的响应数据就会保持一致。不同的查询内容则会产生不同的 scroll 上下文,资源使用就会相对紧张。有时想对同一固定数据集适时运行不同的查询,就需要 PIT 查询。

如果对于一个不断变化的索引有着很高的搜索负载,那么为每个请求创建一个新的时间点查询会使用相当多的资源。可以通过使用一个后台进程每隔几分钟创建一个时间点 id 并将其用于所有搜索请求的方式来优化资源使用

更多内容可以参照这里

注意事项

资源管理

  • PIT 会占用系统资源,需要及时释放
  • 建议设置合理的保留时间
  • 监控 open context 数量

使用场景

  • 适合需要一致性视图的场景
  • 适合需要深度分页的场景
  • 适合需要在固定数据集上执行多次查询的场景

性能优化

  • 避免过长的保留时间,合理设置批次大小
  • 建议查询的时候带 sort 参数排序

测试代码

// 1. 使用 product_test 索引,创建 PIT
POST /product_test/_pit?keep_alive=1m

GET /_search
{
  "size": 1,
  "query": {
    "match": {
      "model": "iphone"
    }
  },
  "pit": {
    "id": "i6-xAwEMcHJvZHVjdF90ZXN0FmRObXltV3ZDU1VTTnllYjNoR0ZtamcAFk1GQklTWXBaUkllb2h1cGl1VVFsdUEAAAAAAAABZk8WOFVoUHBhN3BSVVN5TWVmeTh4d3JpdwEWZE5teW1XdkNTVVNOeWViM2hHRm1qZwAA",
    "keep_alive": "1m"
  },
  "sort": [
    {"_score": "desc"},
    {"_id": "asc"}
  ]
}

DELETE /_pit
{"id":"i6-xAwEMcHJvZHVjdF90ZXN0FmRObXltV3ZDU1VTTnllYjNoR0ZtamcAFk1GQklTWXBaUkllb2h1cGl1VVFsdUEAAAAAAAABZk8WOFVoUHBhN3BSVVN5TWVmeTh4d3JpdwEWZE5teW1XdkNTVVNOeWViM2hHRm1qZwAA"}

小结

作为查询方法,Elasticsearch 新增的几个功能面对的场景更加具象且方便,大家可以根据业务的场景特性可以优化使用。其中深度分页查询是 ES 使用者几乎避免不了的场景,PIT 查询也是提供了一个更为优质的方法。

推荐阅读

关于极限科技(INFINI Labs)

INFINI Labs

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

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

官网:https://infinilabs.cn

作者:金多安,极限科技(INFINI Labs)搜索运维专家,Elastic 认证专家,搜索客社区日报责任编辑。一直从事与搜索运维相关的工作,日常会去挖掘 ES / Lucene 方向的搜索技术原理,保持搜索相关技术发展的关注。
原文:https://infinilabs.cn/blog/2025/feature-evolution-from-elasticsearch-6.8-to-7.10-part-3/

继续阅读 »

上一篇咱们了解了 ES 7.10 相较于 ES 6.8 新增的字段类型,这一篇我们继续了解新增的查询方法。

Interval 间隔查询:

功能介绍

Interval 查询,词项间距查询,可以根据匹配词项的顺序、间距和接近度对文档进行排名。主要解决的查询场景“创建一个多搜索词匹配的查询,同时保留搜索词的顺序”,比 match phrase 更加符合需求场景,查询方法使用比 span 查询更简单。ES 后续版本想用 interval 查询逐步替代 span 查询。

注意事项

规则组合

  • 可以使用 prefix、wildcard、fuzzy 等规则
  • 通过设置 max_gaps 和 ordered 参数,可以控制词项间的最大间隙和顺序要求

性能考虑

  • 间隔查询比简单的词项匹配更消耗资源
  • 嵌套规则越多,性能开销越大
  • 建议合理使用 maxGaps 参数限制间距

使用限制

  • 只能用于 text 字段
  • 不支持跨字段查询
  • 不支持对数值类型字段使用

Distance feature 查询

功能说明

时间/地理距离特性查询,该查询用于查找更接近被查询日期和地理位置的结果。 日期和位置分别是声明为 date 和 geo_point 数据类型的字段。返回结果的字段值不需要完全等于被查询值,而是按照给定日期或给定位置的进度算分,越是接近被查询值,在相关性得分中被评为更高

字段类型要求

  • 日期字段必须是 date 类型,地理位置字段必须是 geo_point 类型
  • 不支持其他类型的距离计算

评分机制

  • 距离越近,得分越高
  • 使用 boost 参数调整权重
  • 可以与其他查询组合使用

性能考虑

  • 地理距离计算较为耗费资源,建议使用合适的索引优化地理查询,比如:考虑使用地理网格索引提升性能

Pinned 查询

功能说明

实现对某些文档的置顶功能,使用存储在_id 字段中的文档 ID 来标识升级或“固定”的文档。
此功能通常用于引导搜索者查找精选的文档,这些文档在搜索的任何 “organic” 匹配项之上被提升。当查询中有排序时,pinned 查询失效

使用限制

  • 不能与自定义排序一起使用
  • 置顶文档必须存在于索引中
  • 最多支持 100 个置顶文档

排序规则

  • 置顶文档按照 ids 数组中的顺序排序
  • organic 查询结果按照相关性得分排序
  • 置顶文档始终在 organic 结果之前

PIT 查询

功能说明

Point in time 查询是一个轻量级的视图,根据保留周期保留 PIT 查询发生时数据的状态,用于不同条件的深度分页查询。

scroll 滚动搜索及其上下文与查询内容绑定。这意味着编写一个查询,添加一个滚动参数,来自这个查询的响应数据就会保持一致。不同的查询内容则会产生不同的 scroll 上下文,资源使用就会相对紧张。有时想对同一固定数据集适时运行不同的查询,就需要 PIT 查询。

如果对于一个不断变化的索引有着很高的搜索负载,那么为每个请求创建一个新的时间点查询会使用相当多的资源。可以通过使用一个后台进程每隔几分钟创建一个时间点 id 并将其用于所有搜索请求的方式来优化资源使用

更多内容可以参照这里

注意事项

资源管理

  • PIT 会占用系统资源,需要及时释放
  • 建议设置合理的保留时间
  • 监控 open context 数量

使用场景

  • 适合需要一致性视图的场景
  • 适合需要深度分页的场景
  • 适合需要在固定数据集上执行多次查询的场景

性能优化

  • 避免过长的保留时间,合理设置批次大小
  • 建议查询的时候带 sort 参数排序

测试代码

// 1. 使用 product_test 索引,创建 PIT
POST /product_test/_pit?keep_alive=1m

GET /_search
{
  "size": 1,
  "query": {
    "match": {
      "model": "iphone"
    }
  },
  "pit": {
    "id": "i6-xAwEMcHJvZHVjdF90ZXN0FmRObXltV3ZDU1VTTnllYjNoR0ZtamcAFk1GQklTWXBaUkllb2h1cGl1VVFsdUEAAAAAAAABZk8WOFVoUHBhN3BSVVN5TWVmeTh4d3JpdwEWZE5teW1XdkNTVVNOeWViM2hHRm1qZwAA",
    "keep_alive": "1m"
  },
  "sort": [
    {"_score": "desc"},
    {"_id": "asc"}
  ]
}

DELETE /_pit
{"id":"i6-xAwEMcHJvZHVjdF90ZXN0FmRObXltV3ZDU1VTTnllYjNoR0ZtamcAFk1GQklTWXBaUkllb2h1cGl1VVFsdUEAAAAAAAABZk8WOFVoUHBhN3BSVVN5TWVmeTh4d3JpdwEWZE5teW1XdkNTVVNOeWViM2hHRm1qZwAA"}

小结

作为查询方法,Elasticsearch 新增的几个功能面对的场景更加具象且方便,大家可以根据业务的场景特性可以优化使用。其中深度分页查询是 ES 使用者几乎避免不了的场景,PIT 查询也是提供了一个更为优质的方法。

推荐阅读

关于极限科技(INFINI Labs)

INFINI Labs

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

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

官网:https://infinilabs.cn

作者:金多安,极限科技(INFINI Labs)搜索运维专家,Elastic 认证专家,搜索客社区日报责任编辑。一直从事与搜索运维相关的工作,日常会去挖掘 ES / Lucene 方向的搜索技术原理,保持搜索相关技术发展的关注。
原文:https://infinilabs.cn/blog/2025/feature-evolution-from-elasticsearch-6.8-to-7.10-part-3/

收起阅读 »

【直播预告】开源智能搜索与知识管理革新 —— Coco AI 全景解读

4 月 28 日(周一)19:00,INFINI Labs 与 GitCode 联合为您带来 Coco AI 专场直播!本次直播将深度剖析 Coco AI 的核心功能、技术架构及其在实际场景中的应用,带您领略智能搜索与知识管理的全新变革。精彩不容错过,快来预约观看吧!👇

直播时间: 2025-04-28 19:00
直播平台: GitCode 视频号 、CSDN 双端、极限实验室视频号

CSDN 直播间地址 👇
https://live.csdn.net/room/csdnedu/q6BD0Kui

直播主题

开源智能搜索与知识管理革新 —— Coco AI 全景解读

直播简介

在人工智能技术飞速发展的今天,如何高效管理海量信息、实现智能搜索与知识共享,已成为个人与企业共同面临的挑战。本次直播将全面解析 Coco AI —— 由极限科技(INFINI Labs)推出的开源、跨平台智能搜索与知识库管理工具,带您探索其核心功能、技术架构及实际应用场景。

无论您是希望优化知识管理的个人,还是期望建立高效信息生态的企业,亦或是对技术实现感兴趣的开发者,本次直播都将是您不可错过的学习与交流机会。

直播主题及嘉宾介绍

主题一 :《下一代 AI 搜索工具 - Coco AI 介绍》

主题摘要: Coco AI 是由极限科技推出的一款完全开源且免费的智能搜索与 AI 知识库工具。本次分享将深入介绍 Coco AI 的核心功能,并探讨如何融合人工智能与搜索技术,实现智能化搜索与知识管理的全面优化,从而有效提升企业协作效率与个人生产力。

分享嘉宾: 曾勇,极限科技 / INFINI Labs 创始人兼 CEO,现正带领团队专注于下一代实时搜索引擎与 AI 智能搜索相关技术的研发与创新。

主题二 :《使用 Coco AI 打造 ES 专用工具箱》

主题摘要: 基于 Coco AI 打造了专门针对 ES 的工具箱,旨在通过快速、高效、准确的数据检索,解决 ES 使用过程中常见的问题,提升工作效率。

分享嘉宾: 杨帆,极限科技(INFINI Labs)高级解决方案架构师、《老杨玩搜索》栏目 B 站 UP 主,拥有十余年金融行业服务工作经验,熟悉 Linux、数据库、网络等领域。目前主要从事 Easysearch、Elasticsearch 等搜索引擎的技术支持工作,服务国内私有化部署的客户。

主题三 :《Coco AI 技术选型-Tauri v2 的优劣》

主题摘要: Tauri v2 是一款基于 Rust 的跨平台应用开发框架,凭借其轻量化、高性能和扩展性,成为近年来替代 Electron 的热门选择。尤其在 AI 应用开发中,Tauri v2 凭借其独特优势吸引了开发者关注,但也存在一些局限性需权衡。

分享嘉宾: 张斌,极限科技(INFINI Labs)Coco AI 前端研发负责人,拥有丰富的全栈开发经验,专注于 Web 技术与系统架构设计,致力于构建高效、可扩展的应用系统。擅长 JavaScript/TypeScript 生态,熟悉大数据处理和人工智能等前沿技术,具备深厚的工程实践背景,持续探索技术的边界与创新的可能。

关于 Gitcode

GitCode 新一代由 AI 驱动的开源开发者平台,依托 CSDN 开发者社区,通过集成代码托管服务、代码仓库和可信赖的开源组件库,使开发者能够在云端进行代码托管和开发,平台提供了丰富的功能支持和完善的生态体系,帮助开发者轻松管理和分享代码,为开源项目提供强有力的支持。

关于 Coco AI

Coco AI 是一个完全开源、跨平台的统一搜索与效率工具,能够连接并搜索多种数据源,包括应用程序、文件、谷歌网盘、Notion、语雀、Hugo 等本地与云端数据。通过接入 DeepSeek 等大模型,Coco AI 实现了智能化的个人知识库管理,注重隐私,支持私有部署,帮助用户快速、智能地访问信息。

官网:https://coco.rs

GitCode:https://gitcode.com/infinilabs/coco-app
Github:https://github.com/infinilabs/coco-app

快来 ⭐️ Star 支持 Coco AI 吧 ~

继续阅读 »

4 月 28 日(周一)19:00,INFINI Labs 与 GitCode 联合为您带来 Coco AI 专场直播!本次直播将深度剖析 Coco AI 的核心功能、技术架构及其在实际场景中的应用,带您领略智能搜索与知识管理的全新变革。精彩不容错过,快来预约观看吧!👇

直播时间: 2025-04-28 19:00
直播平台: GitCode 视频号 、CSDN 双端、极限实验室视频号

CSDN 直播间地址 👇
https://live.csdn.net/room/csdnedu/q6BD0Kui

直播主题

开源智能搜索与知识管理革新 —— Coco AI 全景解读

直播简介

在人工智能技术飞速发展的今天,如何高效管理海量信息、实现智能搜索与知识共享,已成为个人与企业共同面临的挑战。本次直播将全面解析 Coco AI —— 由极限科技(INFINI Labs)推出的开源、跨平台智能搜索与知识库管理工具,带您探索其核心功能、技术架构及实际应用场景。

无论您是希望优化知识管理的个人,还是期望建立高效信息生态的企业,亦或是对技术实现感兴趣的开发者,本次直播都将是您不可错过的学习与交流机会。

直播主题及嘉宾介绍

主题一 :《下一代 AI 搜索工具 - Coco AI 介绍》

主题摘要: Coco AI 是由极限科技推出的一款完全开源且免费的智能搜索与 AI 知识库工具。本次分享将深入介绍 Coco AI 的核心功能,并探讨如何融合人工智能与搜索技术,实现智能化搜索与知识管理的全面优化,从而有效提升企业协作效率与个人生产力。

分享嘉宾: 曾勇,极限科技 / INFINI Labs 创始人兼 CEO,现正带领团队专注于下一代实时搜索引擎与 AI 智能搜索相关技术的研发与创新。

主题二 :《使用 Coco AI 打造 ES 专用工具箱》

主题摘要: 基于 Coco AI 打造了专门针对 ES 的工具箱,旨在通过快速、高效、准确的数据检索,解决 ES 使用过程中常见的问题,提升工作效率。

分享嘉宾: 杨帆,极限科技(INFINI Labs)高级解决方案架构师、《老杨玩搜索》栏目 B 站 UP 主,拥有十余年金融行业服务工作经验,熟悉 Linux、数据库、网络等领域。目前主要从事 Easysearch、Elasticsearch 等搜索引擎的技术支持工作,服务国内私有化部署的客户。

主题三 :《Coco AI 技术选型-Tauri v2 的优劣》

主题摘要: Tauri v2 是一款基于 Rust 的跨平台应用开发框架,凭借其轻量化、高性能和扩展性,成为近年来替代 Electron 的热门选择。尤其在 AI 应用开发中,Tauri v2 凭借其独特优势吸引了开发者关注,但也存在一些局限性需权衡。

分享嘉宾: 张斌,极限科技(INFINI Labs)Coco AI 前端研发负责人,拥有丰富的全栈开发经验,专注于 Web 技术与系统架构设计,致力于构建高效、可扩展的应用系统。擅长 JavaScript/TypeScript 生态,熟悉大数据处理和人工智能等前沿技术,具备深厚的工程实践背景,持续探索技术的边界与创新的可能。

关于 Gitcode

GitCode 新一代由 AI 驱动的开源开发者平台,依托 CSDN 开发者社区,通过集成代码托管服务、代码仓库和可信赖的开源组件库,使开发者能够在云端进行代码托管和开发,平台提供了丰富的功能支持和完善的生态体系,帮助开发者轻松管理和分享代码,为开源项目提供强有力的支持。

关于 Coco AI

Coco AI 是一个完全开源、跨平台的统一搜索与效率工具,能够连接并搜索多种数据源,包括应用程序、文件、谷歌网盘、Notion、语雀、Hugo 等本地与云端数据。通过接入 DeepSeek 等大模型,Coco AI 实现了智能化的个人知识库管理,注重隐私,支持私有部署,帮助用户快速、智能地访问信息。

官网:https://coco.rs

GitCode:https://gitcode.com/infinilabs/coco-app
Github:https://github.com/infinilabs/coco-app

快来 ⭐️ Star 支持 Coco AI 吧 ~

收起阅读 »

Coco AI 入驻 GitCode:打破数据孤岛,解锁智能协作新可能

在信息爆炸时代,企业正面临前所未有的挑战:

  • 企业数据和信息分散,数据孤岛现象严重,员工往往浪费大量时间跨平台检索;
  • 跨部门协作困难,团队因信息隔阂导致项目延期;
  • 数据安全问题严峻,迫使企业对数据管理提出高要求;
  • 传统搜索准确率不足,无法满足用户深层次需求;

这正是 Coco AI 诞生的契机——一款重新定义企业效率的智能中枢。

Coco AI 是一个完全开源、跨平台的统一搜索与效率工具,深度融合大语言模型技术,实现从"人找信息"到"信息追人"的范式革命。目前已加入 GitCode 平台成为 G-Star 优秀毕业项目。通过连接 Google Workspace、Notion、语雀等 200+ 数据源,接入 DeepSeek 等大模型,构建企业级智能知识图谱,让数据真正流动起来,帮助企业高效管理和利用内外部数据资源。

多种功能 一次集合

全域智能搜索

  • Coco AI 支持整合企业内部和外部的多种数据源,包括 Google Workspace、Dropbox、GitHub、本地文件系统等。
  • 提供统一的搜索界面,用户无需切换多个平台即可快速检索所需信息。

AI 知识管家

  • 内置基于生成式 AI 的聊天助手,能够理解企业内部的文档、对话记录和工作流程。
  • 支持从互联网、内部知识库和指定数据源中提取信息,提供与组织相关的智能回答。
  • 支持在搜索模式和聊天模式之间快速切换。

企业安全中枢

  • 遵循企业级权限管理规范,确保数据访问的安全性。
  • 支持私有化部署,满足企业对数据隐私的高要求。
  • 允许开发者根据需求进行定制和扩展,支持企业自行部署,确保数据隐私和安全。

协作生态集成

  • 用户可以直接与单个文件或数据源进行交互,例如对文档内容提问或生成摘要。
  • 通过整合团队常用的工具和数据源,提升团队协作效率。
  • 支持基于上下文的多轮对话,帮助团队成员快速获取所需信息。
  • 在 1 分钟内轻松将 Coco AI 功能嵌入到您的网站中。

架构设计图

核心模块 “Coco Server” 提供搜索、聊天、附件管理、索引、嵌入、安全等功能,并通过 API 实现与外部系统的交互。同时,系统支持自定义 UI,为用户提供个性化的搜索和任务管理体验,并通过 AI 助手提供智能化的信息交互体验。

从 V0.3 到行业标准,Coco AI 持续进化,致力于推动知识管理和信息检索的变革,加速企业数字化转型。

立即访问

GitCode 了解 Coco AI,让您的企业获得:

  • 每年节省百万级人力成本
  • 打造永不遗忘的组织和大脑
  • 激活数据资产的复合价值

开源可许:

MIT License

项目地址:

https://gitcode.com/infinilabs/coco-app

快来 ⭐️ Star 支持 Coco AI 吧 ~

直播预告

4 月 28 日 星期一 19:00 极限科技(INFINI Labs)团队带您全面解析 Coco AI,探索其核心功能、技术架构及实际应用场景,领略智能搜索与知识管理的革新。

CSDN 直播间地址 👇

https://live.csdn.net/room/csdnedu/q6BD0Kui

关于 Gitcode

GitCode 新一代由 AI 驱动的开源开发者平台,依托 CSDN 开发者社区,通过集成代码托管服务、代码仓库和可信赖的开源组件库,使开发者能够在云端进行代码托管和开发,平台提供了丰富的功能支持和完善的生态体系,帮助开发者轻松管理和分享代码,为开源项目提供强有力的支持。

作者:GitCode
原文:https://mp.weixin.qq.com/s/03VTrmVXzflO6QTcZaCLTA

继续阅读 »

在信息爆炸时代,企业正面临前所未有的挑战:

  • 企业数据和信息分散,数据孤岛现象严重,员工往往浪费大量时间跨平台检索;
  • 跨部门协作困难,团队因信息隔阂导致项目延期;
  • 数据安全问题严峻,迫使企业对数据管理提出高要求;
  • 传统搜索准确率不足,无法满足用户深层次需求;

这正是 Coco AI 诞生的契机——一款重新定义企业效率的智能中枢。

Coco AI 是一个完全开源、跨平台的统一搜索与效率工具,深度融合大语言模型技术,实现从"人找信息"到"信息追人"的范式革命。目前已加入 GitCode 平台成为 G-Star 优秀毕业项目。通过连接 Google Workspace、Notion、语雀等 200+ 数据源,接入 DeepSeek 等大模型,构建企业级智能知识图谱,让数据真正流动起来,帮助企业高效管理和利用内外部数据资源。

多种功能 一次集合

全域智能搜索

  • Coco AI 支持整合企业内部和外部的多种数据源,包括 Google Workspace、Dropbox、GitHub、本地文件系统等。
  • 提供统一的搜索界面,用户无需切换多个平台即可快速检索所需信息。

AI 知识管家

  • 内置基于生成式 AI 的聊天助手,能够理解企业内部的文档、对话记录和工作流程。
  • 支持从互联网、内部知识库和指定数据源中提取信息,提供与组织相关的智能回答。
  • 支持在搜索模式和聊天模式之间快速切换。

企业安全中枢

  • 遵循企业级权限管理规范,确保数据访问的安全性。
  • 支持私有化部署,满足企业对数据隐私的高要求。
  • 允许开发者根据需求进行定制和扩展,支持企业自行部署,确保数据隐私和安全。

协作生态集成

  • 用户可以直接与单个文件或数据源进行交互,例如对文档内容提问或生成摘要。
  • 通过整合团队常用的工具和数据源,提升团队协作效率。
  • 支持基于上下文的多轮对话,帮助团队成员快速获取所需信息。
  • 在 1 分钟内轻松将 Coco AI 功能嵌入到您的网站中。

架构设计图

核心模块 “Coco Server” 提供搜索、聊天、附件管理、索引、嵌入、安全等功能,并通过 API 实现与外部系统的交互。同时,系统支持自定义 UI,为用户提供个性化的搜索和任务管理体验,并通过 AI 助手提供智能化的信息交互体验。

从 V0.3 到行业标准,Coco AI 持续进化,致力于推动知识管理和信息检索的变革,加速企业数字化转型。

立即访问

GitCode 了解 Coco AI,让您的企业获得:

  • 每年节省百万级人力成本
  • 打造永不遗忘的组织和大脑
  • 激活数据资产的复合价值

开源可许:

MIT License

项目地址:

https://gitcode.com/infinilabs/coco-app

快来 ⭐️ Star 支持 Coco AI 吧 ~

直播预告

4 月 28 日 星期一 19:00 极限科技(INFINI Labs)团队带您全面解析 Coco AI,探索其核心功能、技术架构及实际应用场景,领略智能搜索与知识管理的革新。

CSDN 直播间地址 👇

https://live.csdn.net/room/csdnedu/q6BD0Kui

关于 Gitcode

GitCode 新一代由 AI 驱动的开源开发者平台,依托 CSDN 开发者社区,通过集成代码托管服务、代码仓库和可信赖的开源组件库,使开发者能够在云端进行代码托管和开发,平台提供了丰富的功能支持和完善的生态体系,帮助开发者轻松管理和分享代码,为开源项目提供强有力的支持。

作者:GitCode
原文:https://mp.weixin.qq.com/s/03VTrmVXzflO6QTcZaCLTA

收起阅读 »