
【搜索客社区日报】 第1749期 (2023-12-04)
https://zhidx.com/news/40531.html
2、iOS微信全文搜索技术优化
https://mp.weixin.qq.com/s/Ph0jykLr5CMF-xFgoJw5UQ
3、通义千问开源全家桶,最小18亿模型端侧都能跑
https://www.jiqizhixin.com/articles/2023-12-01-5
4、Elasticsearch 8.X “图搜图”实战
https://mp.weixin.qq.com/s/4WKUhHS9Ta2NgiRF6C8LFA
5.在NLP与AI加持下的Elasticsearch搜索场景我们应该选择什么样的硬件
https://cloud.tencent.com/deve ... 96488
编辑:yuebancanghai
更多资讯:http://news.searchkit.cn
https://zhidx.com/news/40531.html
2、iOS微信全文搜索技术优化
https://mp.weixin.qq.com/s/Ph0jykLr5CMF-xFgoJw5UQ
3、通义千问开源全家桶,最小18亿模型端侧都能跑
https://www.jiqizhixin.com/articles/2023-12-01-5
4、Elasticsearch 8.X “图搜图”实战
https://mp.weixin.qq.com/s/4WKUhHS9Ta2NgiRF6C8LFA
5.在NLP与AI加持下的Elasticsearch搜索场景我们应该选择什么样的硬件
https://cloud.tencent.com/deve ... 96488
编辑:yuebancanghai
更多资讯:http://news.searchkit.cn 收起阅读 »

社区日报 第1749期 (2023-12-01)
1、借助 Elasticsearch 实现 Kubernetes 日志进行故障排除
https://povilasv.me/troublesho ... arch/
2、将最大内积(Maximum- Inner- Product)引入 Lucene
https://search-labs.elastic.co ... ucene
3、揭秘 ChatGPT:构建 AI 搜索的不同方法
https://search-labs.elastic.co ... earch
编辑:铭毅天下
1、借助 Elasticsearch 实现 Kubernetes 日志进行故障排除
https://povilasv.me/troublesho ... arch/
2、将最大内积(Maximum- Inner- Product)引入 Lucene
https://search-labs.elastic.co ... ucene
3、揭秘 ChatGPT:构建 AI 搜索的不同方法
https://search-labs.elastic.co ... earch
编辑:铭毅天下 收起阅读 »

使用极限网关助力 ES 集群无缝升级、迁移上/下云
在工作中大家可能会遇到以下这些场景:
- 自建 ES 集群需要平滑迁移到 XX 云;
- 从 XX 云将 ES 集群迁移到自建机房;
- ES 集群进行跨版本升级,同时保留回退能力; 这些场景往往都还有个共同的需求:迁移过程要保证业务的最小停机时间。 幸运的是,在这三个场景中,我们都能使用极限网关来帮助我们进行更丝滑的迁移或升级。下面,我们以迁移 ES 集群上云为例,介绍下整个工作过程。
- 自建版本: 5.4.2
- 云上版本: 5.6.16
- Gateway 和 Console 建议用最新版本
迁移架构
通过将应用端流量走网关的方式,请求同步转发给自建 ES,网关记录所有的写入请求,并确保顺序在 XX 云 ES 上重放请求,两侧集群的各种故障都妥善进行了处理,从而实现透明的集群双写,实现安全无缝的数据迁移。
业务端如果已经部署在云上,可以使用云上的 SLB 服务来访问网关,确保后端网关的高可用,如果业务端和极限网关还在企业内网,可以使用极限网关自带的 4 层浮动 IP 来确保网关的 高可用 。
执行步骤
部署 INFINI Gateway
为了保证数据的无缝透明迁移,通过网关来进行双写。
- 系统调优
- 安装 INFINI Gateway
- 修改网关配置
在此 下载 网关双写配置,默认网关会加载配置文件 gateway.yml 。如果要指定其他配置文件使用 -config 选项。
配置文件内容较多,下面仅展示必要部分。
#primary PRIMARY_ENDPOINT: http://192.168.56.3:7171 PRIMARY_USERNAME: elastic PRIMARY_PASSWORD: password PRIMARY_MAX_QPS_PER_NODE: 10000 PRIMARY_MAX_BYTES_PER_NODE: 104857600 #100MB/s PRIMARY_MAX_CONNECTION_PER_NODE: 200 PRIMARY_DISCOVERY_ENABLED: false PRIMARY_DISCOVERY_REFRESH_ENABLED: false #backup BACKUP_ENDPOINT: http://192.168.56.3:9200 BACKUP_USERNAME: admin BACKUP_PASSWORD: admin BACKUP_MAX_QPS_PER_NODE: 10000 BACKUP_MAX_BYTES_PER_NODE: 104857600 #100MB/s BACKUP_MAX_CONNECTION_PER_NODE: 200 BACKUP_DISCOVERY_ENABLED: false BACKUP_DISCOVERY_REFRESH_ENABLED: false
PRIMARY_ENDPOINT:配置主集群地址和端口 PRIMARY_USERNAME、PRIMARY_PASSWORD: 访问主集群的用户信息 BACKUP_ENDPOINT:配置备集群地址和端口 BACKUP_USERNAME、BACKUP_PASSWORD: 访问备集群的用户信息
- 启动网关
启动网关并指定刚刚创建的配置,如下:
./gateway-linux-amd64 -config replication_via-disk.yml.yml
部署 INFINI Console
为了方便在多个集群之间快速切换,管理网关消费任务、查看队列等。使用 INFINI Console 来进行管理。
- 下载安装
- 启动服务
./console-linux-amd64 -service install
./console-linux-amd64 -service start
- 注册资源
将 ES 集群、极限网关都注册到 Console 中。
- 注册 ES 集群:方便切换集群,执行命令。除了新旧集群外,将网关也在此注册一次,方便验证网关功能。
- 注册 Gateway:管理网关任务、队列。
测试 INFINI Gateway
为了验证网关是否正常工作,我们通过 INFINI Console 来快速验证一下。 首先通过走网关的接口来创建一个索引,并写入一个文档,如下:
查看 5.4.2 集群的数据情况,如下:
查看集群 5.6.16 的数据情况,如下:
数据一致,说明网关配置都正常,验证结束。
调整网关的消费策略
因为我们需要在全量数据迁移之后,才能进行增量数据的追加,在全量数据迁移完成之前,我们应该暂停增量数据的消费。修改网关配置里面 Pipeline
consume-queue_backup-bulk_request_ingestion-to-backup
的参数auto_start
为false
,表示不自动启动该任务,具体配置方法如下:修改完配置之后,需要重新启动网关。 由于之前已经注册了网关,待全量迁移完成之后,可以通过后台的 Task 管理来进行后续的任务启动、停止,如下:
切换流量
接下来,将业务正常写的流量切换到网关,也就是需要把之前指向 ES 5.4.2 的地址指向网关的地址,如果 5.4.2 集群开启了身份验证,业务端代码同样需要传递身份信息,和 5.4.2 之前的用法保持不变。
切换流量到网关之后,用户的请求还是以同步的方式正常访问自建集群,网关记录到的请求会按顺序记录到 MQ 里面,但是消费是暂停状态。 如果业务端代码使用的 ES 的 SDK 支持 Sniff,并且业务代码开启了 Sniff,那么应该关闭 Sniff,避免业务端通过 Sniff 直接链接到后端的 ES 节点,所有的流量现在应该都只通过网关来进行访问。
全量数据迁移
在流量迁移到网关之后,我们开始对自建 Elasticsearch 集群的数据进行全量迁移到 XX 云 Elasticsearch 集群。
全量迁移已有的数据的方式有很多种:
- 通过快照的方式进行恢复
- 使用 INFINI Console 进行数据迁移
增量数据迁移
在全量导入的过程中,可能存在数据的增量修改,不过这部分请求都已经完整记录下来了,我们只需要开启网关的消费任务即可将积压的请求应用到云端的 ES 集群。
示例操作如下:
通过观察队列是否消费完成来判断增量数据是否做完,如下:
执行数据比对
由于集群内部的数据可能比较多,我们需要进行一个完整的比对才能确保数据的完整性,可以通过 INFINI Console 的数据比对 工具来进行。
切换集群
如果验证完之后,两个集群的数据已经完全一致了,可以将程序切换到新集群,或者将网关的配置里面的主备进行互换,仍旧写两个集群,先写云端集群,再写自建集群。
双集群在线运行一段时间,待业务完全验证之后,再安全下线老集群,如遇到问题,也可以随时回切到老集群。
小结
通过使用极限网关,自建 ES 集群可以安全无缝的迁移上云,在迁移的过程中,两套集群通过网关进行了解耦,两套集群的版本也可以不一样,在迁移的过程中还能实现版本的无缝升级。 工作流程图
在工作中大家可能会遇到以下这些场景:
- 自建 ES 集群需要平滑迁移到 XX 云;
- 从 XX 云将 ES 集群迁移到自建机房;
- ES 集群进行跨版本升级,同时保留回退能力; 这些场景往往都还有个共同的需求:迁移过程要保证业务的最小停机时间。 幸运的是,在这三个场景中,我们都能使用极限网关来帮助我们进行更丝滑的迁移或升级。下面,我们以迁移 ES 集群上云为例,介绍下整个工作过程。
- 自建版本: 5.4.2
- 云上版本: 5.6.16
- Gateway 和 Console 建议用最新版本
迁移架构
通过将应用端流量走网关的方式,请求同步转发给自建 ES,网关记录所有的写入请求,并确保顺序在 XX 云 ES 上重放请求,两侧集群的各种故障都妥善进行了处理,从而实现透明的集群双写,实现安全无缝的数据迁移。
业务端如果已经部署在云上,可以使用云上的 SLB 服务来访问网关,确保后端网关的高可用,如果业务端和极限网关还在企业内网,可以使用极限网关自带的 4 层浮动 IP 来确保网关的 高可用 。
执行步骤
部署 INFINI Gateway
为了保证数据的无缝透明迁移,通过网关来进行双写。
- 系统调优
- 安装 INFINI Gateway
- 修改网关配置
在此 下载 网关双写配置,默认网关会加载配置文件 gateway.yml 。如果要指定其他配置文件使用 -config 选项。
配置文件内容较多,下面仅展示必要部分。
#primary PRIMARY_ENDPOINT: http://192.168.56.3:7171 PRIMARY_USERNAME: elastic PRIMARY_PASSWORD: password PRIMARY_MAX_QPS_PER_NODE: 10000 PRIMARY_MAX_BYTES_PER_NODE: 104857600 #100MB/s PRIMARY_MAX_CONNECTION_PER_NODE: 200 PRIMARY_DISCOVERY_ENABLED: false PRIMARY_DISCOVERY_REFRESH_ENABLED: false #backup BACKUP_ENDPOINT: http://192.168.56.3:9200 BACKUP_USERNAME: admin BACKUP_PASSWORD: admin BACKUP_MAX_QPS_PER_NODE: 10000 BACKUP_MAX_BYTES_PER_NODE: 104857600 #100MB/s BACKUP_MAX_CONNECTION_PER_NODE: 200 BACKUP_DISCOVERY_ENABLED: false BACKUP_DISCOVERY_REFRESH_ENABLED: false
PRIMARY_ENDPOINT:配置主集群地址和端口 PRIMARY_USERNAME、PRIMARY_PASSWORD: 访问主集群的用户信息 BACKUP_ENDPOINT:配置备集群地址和端口 BACKUP_USERNAME、BACKUP_PASSWORD: 访问备集群的用户信息
- 启动网关
启动网关并指定刚刚创建的配置,如下:
./gateway-linux-amd64 -config replication_via-disk.yml.yml
部署 INFINI Console
为了方便在多个集群之间快速切换,管理网关消费任务、查看队列等。使用 INFINI Console 来进行管理。
- 下载安装
- 启动服务
./console-linux-amd64 -service install
./console-linux-amd64 -service start
- 注册资源
将 ES 集群、极限网关都注册到 Console 中。
- 注册 ES 集群:方便切换集群,执行命令。除了新旧集群外,将网关也在此注册一次,方便验证网关功能。
- 注册 Gateway:管理网关任务、队列。
测试 INFINI Gateway
为了验证网关是否正常工作,我们通过 INFINI Console 来快速验证一下。 首先通过走网关的接口来创建一个索引,并写入一个文档,如下:
查看 5.4.2 集群的数据情况,如下:
查看集群 5.6.16 的数据情况,如下:
数据一致,说明网关配置都正常,验证结束。
调整网关的消费策略
因为我们需要在全量数据迁移之后,才能进行增量数据的追加,在全量数据迁移完成之前,我们应该暂停增量数据的消费。修改网关配置里面 Pipeline
consume-queue_backup-bulk_request_ingestion-to-backup
的参数auto_start
为false
,表示不自动启动该任务,具体配置方法如下:修改完配置之后,需要重新启动网关。 由于之前已经注册了网关,待全量迁移完成之后,可以通过后台的 Task 管理来进行后续的任务启动、停止,如下:
切换流量
接下来,将业务正常写的流量切换到网关,也就是需要把之前指向 ES 5.4.2 的地址指向网关的地址,如果 5.4.2 集群开启了身份验证,业务端代码同样需要传递身份信息,和 5.4.2 之前的用法保持不变。
切换流量到网关之后,用户的请求还是以同步的方式正常访问自建集群,网关记录到的请求会按顺序记录到 MQ 里面,但是消费是暂停状态。 如果业务端代码使用的 ES 的 SDK 支持 Sniff,并且业务代码开启了 Sniff,那么应该关闭 Sniff,避免业务端通过 Sniff 直接链接到后端的 ES 节点,所有的流量现在应该都只通过网关来进行访问。
全量数据迁移
在流量迁移到网关之后,我们开始对自建 Elasticsearch 集群的数据进行全量迁移到 XX 云 Elasticsearch 集群。
全量迁移已有的数据的方式有很多种:
- 通过快照的方式进行恢复
- 使用 INFINI Console 进行数据迁移
增量数据迁移
在全量导入的过程中,可能存在数据的增量修改,不过这部分请求都已经完整记录下来了,我们只需要开启网关的消费任务即可将积压的请求应用到云端的 ES 集群。
示例操作如下:
通过观察队列是否消费完成来判断增量数据是否做完,如下:
执行数据比对
由于集群内部的数据可能比较多,我们需要进行一个完整的比对才能确保数据的完整性,可以通过 INFINI Console 的数据比对 工具来进行。
切换集群
如果验证完之后,两个集群的数据已经完全一致了,可以将程序切换到新集群,或者将网关的配置里面的主备进行互换,仍旧写两个集群,先写云端集群,再写自建集群。
双集群在线运行一段时间,待业务完全验证之后,再安全下线老集群,如遇到问题,也可以随时回切到老集群。
小结
通过使用极限网关,自建 ES 集群可以安全无缝的迁移上云,在迁移的过程中,两套集群通过网关进行了解耦,两套集群的版本也可以不一样,在迁移的过程中还能实现版本的无缝升级。 工作流程图

INFINI Labs 产品更新 | 修复 Easysearch 跨集群复制索引同步问题,Gateway 内存异常增长等问题
INFINI Labs 产品又更新啦~,本次更新主要对 Easysearch、Gateway、Console、Agent 等产品功能进行优化和相关 Bug 修复,解决了内存异常增长等问题,以下是详细说明。
INFINI Easysearch v1.6.2
INFINI Easysearch 是一个分布式的近实时搜索与分析引擎,核心引擎基于开源的 Apache Lucene。Easysearch 的目标是提供一个轻量级的 Elasticsearch 可替代版本,并继续完善和支持更多的企业级功能。
Easysearch 本次更新如下:
Bug fix
- 修复跨集群复制(CCR)不能对自动滚动生成的索引进行同步的问题
Improvements
- 优化初始化脚本,增加-s/-slient 参数,自动安装。
- 新增含 jdk/plugins 的 bundle 安装包
INFINI Gateway v1.20.0
INFINI Gateway 是一个面向搜索场景的高性能数据网关,所有请求都经过网关处理后再转发到后端的搜索业务集群。基于 INFINI Gateway 可以实现索引级别的限速限流、常见查询的缓存加速、查询请求的审计、查询结果的动态修改等等。
Gateway 本次更新如下:
Bug fix
- 修复由 Framework Bug 造成连接数不释放、内存异常增长的问题
Improvements
- 增加配置,允许设置 fasthttp client 相关参数
INFINI Console v1.12.0
INFINI Console 是一款非常轻量级的多集群、跨版本的搜索基础设施统一管控平台。通过对流行的搜索引擎基础设施进行跨版本、多集群的集中纳管, 企业可以快速方便的统一管理企业内部的不同版本的多套搜索集群。
Console 在线体验: http://demo.infini.cloud (用户名/密码:readonly/readonly)。
Console 本次更新如下:
Bug fix
- 修复数据探索 multi fields 字段计算 top values 报错的问题
- 修复由 Framework Bug 造成连接数不释放、内存异常增长的问题
- 修复内网模式下静态资源远程加载的问题
- 修复数据看板数据源配置校验异常的问题
Improvements
- 优化数据探索计算 top values,使用先采样后,后取 top values
- 可通过配置参数 http_client.read_buffer_size 设置读取缓存大小,解决开发工具执行命令时,默认缓存太小的问题
INFINI Agent v0.7.1
INFINI Agent 是 INFINI Console 的一个可选探针组件,负责采集和上传集群指标和日志等信息,并可通过 Console 管理。Agent 支持主流操作系统和平台,安装包轻量且无任何外部依赖,可以快速方便地安装。
Agent 本次更新如下:
Features
- 添加 http processor
Bug fix
- 修复由 Framework Bug 造成连接数不释放、内存异常增长的问题
Improvements
- 进一步优化内存占用,降到 50M 以下
INFINI Framework
INFINI Framework 是 INFINI Labs 各产品依赖的内部核心公共代码库。
Framework 本次更新如下:
- fix: fix the issue of disk queue was blocked
- chore: checkout specify branch before pull
期待反馈
欢迎下载体验使用,如果您在使用过程中遇到如何疑问或者问题,欢迎前往 INFINI Labs Github(https://github.com/infinilabs) 中的对应项目中提交 Feature Request 或提交 Bug。
您还可以通过邮件联系我们:hello@infini.ltd
或者拨打我们的热线电话:(+86) 400-139-9200
欢迎加入 Discord 聊天室:https://discord.gg/4tKTMkkvVX
也欢迎大家微信扫码添加小助手(INFINI-Labs),加入用户群一起讨论交流。
关于极限科技(INFINI Labs)
极限科技,全称极限数据(北京)科技有限公司,是一家专注于实时搜索与数据分析的软件公司。旗下品牌极限实验室(INFINI Labs)致力于打造极致易用的数据探索与分析体验。
极限科技是一支年轻的团队,采用天然分布式的方式来进行远程协作,员工分布在全球各地,希望通过努力成为中国乃至全球企业大数据实时搜索分析产品的首选,为中国技术品牌输出添砖加瓦。
INFINI Labs 产品又更新啦~,本次更新主要对 Easysearch、Gateway、Console、Agent 等产品功能进行优化和相关 Bug 修复,解决了内存异常增长等问题,以下是详细说明。
INFINI Easysearch v1.6.2
INFINI Easysearch 是一个分布式的近实时搜索与分析引擎,核心引擎基于开源的 Apache Lucene。Easysearch 的目标是提供一个轻量级的 Elasticsearch 可替代版本,并继续完善和支持更多的企业级功能。
Easysearch 本次更新如下:
Bug fix
- 修复跨集群复制(CCR)不能对自动滚动生成的索引进行同步的问题
Improvements
- 优化初始化脚本,增加-s/-slient 参数,自动安装。
- 新增含 jdk/plugins 的 bundle 安装包
INFINI Gateway v1.20.0
INFINI Gateway 是一个面向搜索场景的高性能数据网关,所有请求都经过网关处理后再转发到后端的搜索业务集群。基于 INFINI Gateway 可以实现索引级别的限速限流、常见查询的缓存加速、查询请求的审计、查询结果的动态修改等等。
Gateway 本次更新如下:
Bug fix
- 修复由 Framework Bug 造成连接数不释放、内存异常增长的问题
Improvements
- 增加配置,允许设置 fasthttp client 相关参数
INFINI Console v1.12.0
INFINI Console 是一款非常轻量级的多集群、跨版本的搜索基础设施统一管控平台。通过对流行的搜索引擎基础设施进行跨版本、多集群的集中纳管, 企业可以快速方便的统一管理企业内部的不同版本的多套搜索集群。
Console 在线体验: http://demo.infini.cloud (用户名/密码:readonly/readonly)。
Console 本次更新如下:
Bug fix
- 修复数据探索 multi fields 字段计算 top values 报错的问题
- 修复由 Framework Bug 造成连接数不释放、内存异常增长的问题
- 修复内网模式下静态资源远程加载的问题
- 修复数据看板数据源配置校验异常的问题
Improvements
- 优化数据探索计算 top values,使用先采样后,后取 top values
- 可通过配置参数 http_client.read_buffer_size 设置读取缓存大小,解决开发工具执行命令时,默认缓存太小的问题
INFINI Agent v0.7.1
INFINI Agent 是 INFINI Console 的一个可选探针组件,负责采集和上传集群指标和日志等信息,并可通过 Console 管理。Agent 支持主流操作系统和平台,安装包轻量且无任何外部依赖,可以快速方便地安装。
Agent 本次更新如下:
Features
- 添加 http processor
Bug fix
- 修复由 Framework Bug 造成连接数不释放、内存异常增长的问题
Improvements
- 进一步优化内存占用,降到 50M 以下
INFINI Framework
INFINI Framework 是 INFINI Labs 各产品依赖的内部核心公共代码库。
Framework 本次更新如下:
- fix: fix the issue of disk queue was blocked
- chore: checkout specify branch before pull
期待反馈
欢迎下载体验使用,如果您在使用过程中遇到如何疑问或者问题,欢迎前往 INFINI Labs Github(https://github.com/infinilabs) 中的对应项目中提交 Feature Request 或提交 Bug。
您还可以通过邮件联系我们:hello@infini.ltd
或者拨打我们的热线电话:(+86) 400-139-9200
欢迎加入 Discord 聊天室:https://discord.gg/4tKTMkkvVX
也欢迎大家微信扫码添加小助手(INFINI-Labs),加入用户群一起讨论交流。
关于极限科技(INFINI Labs)
极限科技,全称极限数据(北京)科技有限公司,是一家专注于实时搜索与数据分析的软件公司。旗下品牌极限实验室(INFINI Labs)致力于打造极致易用的数据探索与分析体验。
极限科技是一支年轻的团队,采用天然分布式的方式来进行远程协作,员工分布在全球各地,希望通过努力成为中国乃至全球企业大数据实时搜索分析产品的首选,为中国技术品牌输出添砖加瓦。
收起阅读 »
社区日报 第1748期 (2023-11-30)
https://mp.weixin.qq.com/s/0eBZ4zyX6XjBQO0GqlANnw
2线上ES集群参数配置引起的业务异常分析
https://mp.weixin.qq.com/s/hDSYqR8D78SRPltW0SrGdA
3.腾讯云ES AI增强搜索:十分钟快速入门自然语言处理(NLP)与向量检索
https://mp.weixin.qq.com/s/8Xnv8BeEVKCy2Woqlh207Q
4.腾讯云ES RAG最佳实践:百行代码轻松实现帮助文档的智能问答
https://mp.weixin.qq.com/s/ZHgiZMbGFzQ34I9JLQMD_w
5.LangChain AI Handbook
https://www.pinecone.io/learn/series/langchain/
编辑:Se7en
https://mp.weixin.qq.com/s/0eBZ4zyX6XjBQO0GqlANnw
2线上ES集群参数配置引起的业务异常分析
https://mp.weixin.qq.com/s/hDSYqR8D78SRPltW0SrGdA
3.腾讯云ES AI增强搜索:十分钟快速入门自然语言处理(NLP)与向量检索
https://mp.weixin.qq.com/s/8Xnv8BeEVKCy2Woqlh207Q
4.腾讯云ES RAG最佳实践:百行代码轻松实现帮助文档的智能问答
https://mp.weixin.qq.com/s/ZHgiZMbGFzQ34I9JLQMD_w
5.LangChain AI Handbook
https://www.pinecone.io/learn/series/langchain/
编辑:Se7en 收起阅读 »

社区日报 第1747期 (2023-11-29)
https://blog.csdn.net/UbuntuTo ... 34999
2.Elasticsearch:什么是非结构化数据?
https://elasticstack.blog.csdn ... 55258
3.Lucene中文分词器:double-array trie与Viterbi算法 - 上篇
https://zhuanlan.zhihu.com/p/532944354
4.Lucene中文分词器:double-array trie与Viterbi算法 - 下篇
https://zhuanlan.zhihu.com/p/532945013
编辑:kin122
https://blog.csdn.net/UbuntuTo ... 34999
2.Elasticsearch:什么是非结构化数据?
https://elasticstack.blog.csdn ... 55258
3.Lucene中文分词器:double-array trie与Viterbi算法 - 上篇
https://zhuanlan.zhihu.com/p/532944354
4.Lucene中文分词器:double-array trie与Viterbi算法 - 下篇
https://zhuanlan.zhihu.com/p/532945013
编辑:kin122 收起阅读 »

社区日报 第1746期 (2023-11-28)
1. 零度解说,YouTube上干货满满的中文博主(需要梯子)
https://www.youtube.com/@lingdujieshuo/videos
2. 我的创业之旅 —— 一个国外小哥创业的心路历程(需要梯子)
https://medium.datadriveninves ... 1a504
https://arslanshahid-1997.medi ... b07b1
3. 不想天天盯着集群了?搞个alert自动叫你好不好?(需要梯子)
https://medium.com/%40mustafaa ... 7e03e
编辑:斯蒂文
1. 零度解说,YouTube上干货满满的中文博主(需要梯子)
https://www.youtube.com/@lingdujieshuo/videos
2. 我的创业之旅 —— 一个国外小哥创业的心路历程(需要梯子)
https://medium.datadriveninves ... 1a504
https://arslanshahid-1997.medi ... b07b1
3. 不想天天盯着集群了?搞个alert自动叫你好不好?(需要梯子)
https://medium.com/%40mustafaa ... 7e03e
编辑:斯蒂文
收起阅读 »

【社区日报】 第1745期 (2023-11-27)
https://mp.weixin.qq.com/s/C8VttCzTienERuXNoiW26g
2、预测token速度翻番!Transformer新解码算法火了,来自小羊驼团队
https://www.qbitai.com/2023/11/100907.html
3、ChatGPT 和 Elasticsearch:使用 ChatGPT 处理 Elastic 数据的插件
https://blog.csdn.net/UbuntuTo ... 17385
4、微信全文搜索耗时降94%?我们用了这种方案
https://mp.weixin.qq.com/s/y4lynJgHNonbb7s8YfERDg
5.美团|交互式推荐在外卖场景的探索与应用
https://www.6aiq.com/article/1676567215092
编辑:yuebancanghai
更多资讯:http://news.searchkit.cn
https://mp.weixin.qq.com/s/C8VttCzTienERuXNoiW26g
2、预测token速度翻番!Transformer新解码算法火了,来自小羊驼团队
https://www.qbitai.com/2023/11/100907.html
3、ChatGPT 和 Elasticsearch:使用 ChatGPT 处理 Elastic 数据的插件
https://blog.csdn.net/UbuntuTo ... 17385
4、微信全文搜索耗时降94%?我们用了这种方案
https://mp.weixin.qq.com/s/y4lynJgHNonbb7s8YfERDg
5.美团|交互式推荐在外卖场景的探索与应用
https://www.6aiq.com/article/1676567215092
编辑:yuebancanghai
更多资讯:http://news.searchkit.cn 收起阅读 »

社区日报 第1744期 (2023-11-23)
https://www.elastic.co/search- ... g-rag
2.检索增强生成 (RAG)
https://www.elastic.co/search- ... n-rag
3.Elasticsearch控制相关度
https://cloud.tencent.com/deve ... 70348
4.基于火山引擎云搜索服务的排序学习实战
https://mp.weixin.qq.com/s/_dO9A4AIz8UZHzbsJBulUQ
5.如何重新索引您的 Elasticsearch 数据
https://sematext.com/blog/elas ... ntime
编辑:Se7en
https://www.elastic.co/search- ... g-rag
2.检索增强生成 (RAG)
https://www.elastic.co/search- ... n-rag
3.Elasticsearch控制相关度
https://cloud.tencent.com/deve ... 70348
4.基于火山引擎云搜索服务的排序学习实战
https://mp.weixin.qq.com/s/_dO9A4AIz8UZHzbsJBulUQ
5.如何重新索引您的 Elasticsearch 数据
https://sematext.com/blog/elas ... ntime
编辑:Se7en 收起阅读 »

社区日报 第1743期 (2023-11-22)
https://elasticstack.blog.csdn ... 11809
2.Elasticsearch:搜索架构
https://elasticstack.blog.csdn ... 44073
3.矢量数据库对比和选择指南
https://zhuanlan.zhihu.com/p/641822949
4.全文检索的索引设计
https://zhuanlan.zhihu.com/p/520001238
5.Elasticsearch向量检索的演进与变革:从基础到应用
https://zhuanlan.zhihu.com/p/662378712
编辑:kin122
https://elasticstack.blog.csdn ... 11809
2.Elasticsearch:搜索架构
https://elasticstack.blog.csdn ... 44073
3.矢量数据库对比和选择指南
https://zhuanlan.zhihu.com/p/641822949
4.全文检索的索引设计
https://zhuanlan.zhihu.com/p/520001238
5.Elasticsearch向量检索的演进与变革:从基础到应用
https://zhuanlan.zhihu.com/p/662378712
编辑:kin122 收起阅读 »

【社区日报】 第1742期 (2023-11-21)
https://medium.com/%40chenzhiq ... 87af5
2. 把数据从DocumentDB怼进Opensearch一共需要几步?(需要梯子)
https://levi9-serbia.medium.co ... 77d6e
3. 搜索引擎,我翻谁的牌子好?(需要梯子)
https://medium.com/scoro-engin ... 31cd9
编辑:斯蒂文
更多资讯:http://news.searchkit.cn
https://medium.com/%40chenzhiq ... 87af5
2. 把数据从DocumentDB怼进Opensearch一共需要几步?(需要梯子)
https://levi9-serbia.medium.co ... 77d6e
3. 搜索引擎,我翻谁的牌子好?(需要梯子)
https://medium.com/scoro-engin ... 31cd9
编辑:斯蒂文
更多资讯:http://news.searchkit.cn 收起阅读 »

【社区日报】 第1741期 (2023-11-20)
https://www.qbitai.com/2023/11/99103.html
2、网易云音乐推荐系统的冷启动技术
https://zhuanlan.zhihu.com/p/666609016
3、70款ChatGPT插件评测:惊艳的开发过程与宏大的商业化愿景
https://zhuanlan.zhihu.com/p/629337429
4、大语言模型是推荐系统的解决方案吗?
https://zhuanlan.zhihu.com/p/666784325
5.作为程序员, 我如何使用ChatGPT来帮我写代码
https://blog.csdn.net/jeansboy ... 07126
编辑:yuebancanghai
更多资讯:http://news.searchkit.cn
https://www.qbitai.com/2023/11/99103.html
2、网易云音乐推荐系统的冷启动技术
https://zhuanlan.zhihu.com/p/666609016
3、70款ChatGPT插件评测:惊艳的开发过程与宏大的商业化愿景
https://zhuanlan.zhihu.com/p/629337429
4、大语言模型是推荐系统的解决方案吗?
https://zhuanlan.zhihu.com/p/666784325
5.作为程序员, 我如何使用ChatGPT来帮我写代码
https://blog.csdn.net/jeansboy ... 07126
编辑:yuebancanghai
更多资讯:http://news.searchkit.cn 收起阅读 »

通过 Canal 将 MySQL 数据实时同步到 Easysearch
Canal 是阿里巴巴集团提供的一个开源产品,能够通过解析数据库的增量日志,提供增量数据的订阅和消费功能。使用 Canal 模拟成 MySQL 的 Slave,实时接收 MySQL 的增量数据 binlog,然后通过 RESTful API 将数据写入到 Easysearch 中。
前提条件
- 部署 Easysearch 集群。
- 部署 MySQL 数据库。
- 部署 Gateway,Canal Adapter 不支持使用 HTTPS 协议连接,使用 Gateway 代理 Easysearch 。
- 部署 Console,方便查看 Easysearch 数据。
对于自建 MySQL , 需要先开启 Binlog 写入功能,配置 binlog-format 为 ROW 模式,my.cnf 中配置如下:[mysqld] log-bin=mysql-bin # 开启 binlog binlog-format=ROW # 选择 ROW 模式 server_id=1 # 配置 MySQL replaction 需要定义,不要和 canal 的 slaveId 重复
创建 canal 用户,授权 canal 连接 MySQL 具有作为 MySQL slave 的权限。
CREATE USER canal IDENTIFIED BY 'canal'; GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%'; -- GRANT ALL PRIVILEGES ON *.* TO 'canal'@'%' ; FLUSH PRIVILEGES;
操作步骤
在进行数据同步时支持自定义索引 Mapping,但需保证 Mapping 中定义的字段(名称+类型)与 MySQL 中一致。
1. 准备 MySQL 数据源
create database canal; use canal; CREATE TABLE `test` ( `id` bigint(32) NOT NULL, `name` text NOT NULL, `age` smallint NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8;
2. Easysearch 创建索引
PUT test { "settings" : { "index" : { "number_of_shards" : "1", "number_of_replicas" : "1" } }, "mappings" : { "properties" : { "id": { "type": "integer" }, "name": { "type" : "text" }, "age" : { "type" : "integer" } } } }
3. 安装并启动 Canal-server
下载:https://github.com/alibaba/canal/releases/download/canal-1.1.7/canal.deployer-1.1.7.tar.gz
修改配置文件vi conf/example/instance.properties
启动 canal
sh bin/startup.sh
启动成功日志信息,logs/canal/canal.log关闭 canal
sh bin/stop.sh
4. 安装并启动 Canal-adapter
下载:https://github.com/alibaba/canal/releases/download/canal-1.1.7/canal.adapter-1.1.7.tar.gz
修改配置文件:application.ymlserver: port: 8081 spring: jackson: date-format: yyyy-MM-dd HH:mm:ss time-zone: GMT+8 default-property-inclusion: non_null canal.conf: flatMessage: true syncBatchSize: 1000 retries: -1 timeout: accessKey: secretKey: consumerProperties: canal.tcp.server.host: 127.0.0.1:11111 canal.tcp.batch.size: 500 srcDataSources: defaultDS: url: jdbc:mysql://127.0.0.1:3306/canal?useUnicode=true username: canal password: canal canalAdapters: groups: - groupId: g1 outerAdapters: - name: logger - name: es7 properties: security.auth: admin:4ad8f8f792e81cd0a6de cluster.name: easysearch
新增 canal-adapter/conf/es7/test.yml,配置索引和表的映射关系。
dataSourceKey: defaultDS destination: example groupId: g1 esMapping: _index: test # es 的索引名称 _id: _id # es 的_id, 如果不配置该项必须配置下面的pk项_id则会由es自动分配 # sql映射 sql: " select a.id as _id,a.id,a.name,a.age from test a " etlCondition: "where a.id>={}" commitBatch: 3000 # 提交批大小
启动 canal-adapter
./bin/startup.sh
5. 验证增量数据同步
在 MySQL 数据库中,对 test 表插入两条数据。
insert
test(
id,
name,
age) values(1,'canal_test1',11);
insert
test(
id,
name,
age) values(2,'canal_test2',22);
6. 在 Console 中,执行以下命令查询数据
最后
Canal 同步的是增量数据,不会同步之前的存量数据。要同步存量数据可参考《使用 Logstash 同步 MySQL 到 Easysearch》
Canal 是阿里巴巴集团提供的一个开源产品,能够通过解析数据库的增量日志,提供增量数据的订阅和消费功能。使用 Canal 模拟成 MySQL 的 Slave,实时接收 MySQL 的增量数据 binlog,然后通过 RESTful API 将数据写入到 Easysearch 中。
前提条件
- 部署 Easysearch 集群。
- 部署 MySQL 数据库。
- 部署 Gateway,Canal Adapter 不支持使用 HTTPS 协议连接,使用 Gateway 代理 Easysearch 。
- 部署 Console,方便查看 Easysearch 数据。
对于自建 MySQL , 需要先开启 Binlog 写入功能,配置 binlog-format 为 ROW 模式,my.cnf 中配置如下:[mysqld] log-bin=mysql-bin # 开启 binlog binlog-format=ROW # 选择 ROW 模式 server_id=1 # 配置 MySQL replaction 需要定义,不要和 canal 的 slaveId 重复
创建 canal 用户,授权 canal 连接 MySQL 具有作为 MySQL slave 的权限。
CREATE USER canal IDENTIFIED BY 'canal'; GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%'; -- GRANT ALL PRIVILEGES ON *.* TO 'canal'@'%' ; FLUSH PRIVILEGES;
操作步骤
在进行数据同步时支持自定义索引 Mapping,但需保证 Mapping 中定义的字段(名称+类型)与 MySQL 中一致。
1. 准备 MySQL 数据源
create database canal; use canal; CREATE TABLE `test` ( `id` bigint(32) NOT NULL, `name` text NOT NULL, `age` smallint NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8;
2. Easysearch 创建索引
PUT test { "settings" : { "index" : { "number_of_shards" : "1", "number_of_replicas" : "1" } }, "mappings" : { "properties" : { "id": { "type": "integer" }, "name": { "type" : "text" }, "age" : { "type" : "integer" } } } }
3. 安装并启动 Canal-server
下载:https://github.com/alibaba/canal/releases/download/canal-1.1.7/canal.deployer-1.1.7.tar.gz
修改配置文件vi conf/example/instance.properties
启动 canal
sh bin/startup.sh
启动成功日志信息,logs/canal/canal.log关闭 canal
sh bin/stop.sh
4. 安装并启动 Canal-adapter
下载:https://github.com/alibaba/canal/releases/download/canal-1.1.7/canal.adapter-1.1.7.tar.gz
修改配置文件:application.ymlserver: port: 8081 spring: jackson: date-format: yyyy-MM-dd HH:mm:ss time-zone: GMT+8 default-property-inclusion: non_null canal.conf: flatMessage: true syncBatchSize: 1000 retries: -1 timeout: accessKey: secretKey: consumerProperties: canal.tcp.server.host: 127.0.0.1:11111 canal.tcp.batch.size: 500 srcDataSources: defaultDS: url: jdbc:mysql://127.0.0.1:3306/canal?useUnicode=true username: canal password: canal canalAdapters: groups: - groupId: g1 outerAdapters: - name: logger - name: es7 properties: security.auth: admin:4ad8f8f792e81cd0a6de cluster.name: easysearch
新增 canal-adapter/conf/es7/test.yml,配置索引和表的映射关系。
dataSourceKey: defaultDS destination: example groupId: g1 esMapping: _index: test # es 的索引名称 _id: _id # es 的_id, 如果不配置该项必须配置下面的pk项_id则会由es自动分配 # sql映射 sql: " select a.id as _id,a.id,a.name,a.age from test a " etlCondition: "where a.id>={}" commitBatch: 3000 # 提交批大小
启动 canal-adapter
./bin/startup.sh
5. 验证增量数据同步
在 MySQL 数据库中,对 test 表插入两条数据。
insert
test(
id,
name,
age) values(1,'canal_test1',11);
insert
test(
id,
name,
age) values(2,'canal_test2',22);
6. 在 Console 中,执行以下命令查询数据
最后
Canal 同步的是增量数据,不会同步之前的存量数据。要同步存量数据可参考《使用 Logstash 同步 MySQL 到 Easysearch》

INFINI Labs 产品更新 | 发布 Easysearch Java 客户端,Console 支持 SQL 查询等功能
INFINI Labs 产品又更新啦~,本次更新概要如下:发布 Easysearch-client Java 客户端,开发者通过 client 与 Easysearch 集群的交互变得更加简洁和直观;Console 开发工具新增 SQL 特性,支持 SELECT 查询等语法高亮和自动提示等;Gateway 的系统 API 添加了基于基本身份验证的安全功能。
以下是本次更新的详细说明。
INFINI Easysearch-client v1.0.1
正式发布 Easysearch Java 客户端。
这一里程碑式的更新为开发人员带来了前所未有的便利性,使得与 Easysearch 集群的交互变得更加简洁和直观。现在,通过 Easysearch-client 客户端,开发者可以直接使用 Java 方法和数据结构来进行交互,而不再需要依赖于传统的 HTTP 方法和 JSON。这一变化大大简化了操作流程,使得数据管理和索引更加高效。高级客户端的功能范围包括处理数据操作,管理集群,包括查看和维护集群的健康状态,并对 Security 模块全面兼容。它提供了一系列 API,用于管理角色、用户、权限、角色映射和账户。这意味着安全性和访问控制现在可以更加细粒度地管理,确保了数据的安全性和合规性。
使用说明参见:快速开始
INFINI Console v1.11.0
INFINI Console 是一款非常轻量级的多集群、跨版本的搜索基础设施统一管控平台。通过对流行的搜索引擎基础设施进行跨版本、多集群的集中纳管, 企业可以快速方便的统一管理企业内部的不同版本的多套搜索集群。
Console 在线体验: http://demo.infini.cloud (用户名/密码:readonly/readonly)。
Console 本次更新如下:
Features
- 开发工具 SQL 查询支持
- 支持 SELECT 查询及语法高亮
- 支持索引和字段自动提示
- 支持 FROM 前置语法
Bug fix
- 修复平台概览集群指标为空的问题
Improvements
- LDAP 支持从 DN 中解析 OU 属性
- 集群动态优化显示,新增节点名称和索引名称的聚合统计过滤
INFINI Gateway v1.19.0
INFINI Gateway 是一个面向搜索场景的高性能数据网关,所有请求都经过网关处理后再转发到后端的搜索业务集群。基于 INFINI Gateway 可以实现索引级别的限速限流、常见查询的缓存加速、查询请求的审计、查询结果的动态修改等等。
Gateway 本次更新如下:
Features
- 添加
http
处理器 - 在 API 模块中添加基于基本身份验证的安全性
- 允许将自身注册到配置管理器
- 允许在配置错误时触发 panic
Bug fix
- 修复
rewrite_to_bulk
在较新版本中缺少_type
的问题 - 修复
rewrite_to_bulk
,支持无索引文档操作
Improvements
- 更新测试,断言解析结果
期待反馈
欢迎下载体验使用,如果您在使用过程中遇到如何疑问或者问题,欢迎前往 INFINI Labs Github(https://github.com/infinilabs) 中的对应项目中提交 Feature Request 或提交 Bug。
您还可以通过邮件联系我们:hello@infini.ltd
或者拨打我们的热线电话:(+86) 400-139-9200
欢迎加入 Discord 聊天室:https://discord.gg/4tKTMkkvVX
也欢迎大家微信扫码添加小助手(INFINI-Labs),加入用户群一起讨论交流。
关于极限科技(INFINI Labs)
极限科技,全称极限数据(北京)科技有限公司,是一家专注于实时搜索与数据分析的软件公司。旗下品牌极限实验室(INFINI Labs)致力于打造极致易用的数据探索与分析体验。
极限科技是一支年轻的团队,采用天然分布式的方式来进行远程协作,员工分布在全球各地,希望通过努力成为中国乃至全球企业大数据实时搜索分析产品的首选,为中国技术品牌输出添砖加瓦。
INFINI Labs 产品又更新啦~,本次更新概要如下:发布 Easysearch-client Java 客户端,开发者通过 client 与 Easysearch 集群的交互变得更加简洁和直观;Console 开发工具新增 SQL 特性,支持 SELECT 查询等语法高亮和自动提示等;Gateway 的系统 API 添加了基于基本身份验证的安全功能。
以下是本次更新的详细说明。
INFINI Easysearch-client v1.0.1
正式发布 Easysearch Java 客户端。
这一里程碑式的更新为开发人员带来了前所未有的便利性,使得与 Easysearch 集群的交互变得更加简洁和直观。现在,通过 Easysearch-client 客户端,开发者可以直接使用 Java 方法和数据结构来进行交互,而不再需要依赖于传统的 HTTP 方法和 JSON。这一变化大大简化了操作流程,使得数据管理和索引更加高效。高级客户端的功能范围包括处理数据操作,管理集群,包括查看和维护集群的健康状态,并对 Security 模块全面兼容。它提供了一系列 API,用于管理角色、用户、权限、角色映射和账户。这意味着安全性和访问控制现在可以更加细粒度地管理,确保了数据的安全性和合规性。
使用说明参见:快速开始
INFINI Console v1.11.0
INFINI Console 是一款非常轻量级的多集群、跨版本的搜索基础设施统一管控平台。通过对流行的搜索引擎基础设施进行跨版本、多集群的集中纳管, 企业可以快速方便的统一管理企业内部的不同版本的多套搜索集群。
Console 在线体验: http://demo.infini.cloud (用户名/密码:readonly/readonly)。
Console 本次更新如下:
Features
- 开发工具 SQL 查询支持
- 支持 SELECT 查询及语法高亮
- 支持索引和字段自动提示
- 支持 FROM 前置语法
Bug fix
- 修复平台概览集群指标为空的问题
Improvements
- LDAP 支持从 DN 中解析 OU 属性
- 集群动态优化显示,新增节点名称和索引名称的聚合统计过滤
INFINI Gateway v1.19.0
INFINI Gateway 是一个面向搜索场景的高性能数据网关,所有请求都经过网关处理后再转发到后端的搜索业务集群。基于 INFINI Gateway 可以实现索引级别的限速限流、常见查询的缓存加速、查询请求的审计、查询结果的动态修改等等。
Gateway 本次更新如下:
Features
- 添加
http
处理器 - 在 API 模块中添加基于基本身份验证的安全性
- 允许将自身注册到配置管理器
- 允许在配置错误时触发 panic
Bug fix
- 修复
rewrite_to_bulk
在较新版本中缺少_type
的问题 - 修复
rewrite_to_bulk
,支持无索引文档操作
Improvements
- 更新测试,断言解析结果
期待反馈
欢迎下载体验使用,如果您在使用过程中遇到如何疑问或者问题,欢迎前往 INFINI Labs Github(https://github.com/infinilabs) 中的对应项目中提交 Feature Request 或提交 Bug。
您还可以通过邮件联系我们:hello@infini.ltd
或者拨打我们的热线电话:(+86) 400-139-9200
欢迎加入 Discord 聊天室:https://discord.gg/4tKTMkkvVX
也欢迎大家微信扫码添加小助手(INFINI-Labs),加入用户群一起讨论交流。
关于极限科技(INFINI Labs)
极限科技,全称极限数据(北京)科技有限公司,是一家专注于实时搜索与数据分析的软件公司。旗下品牌极限实验室(INFINI Labs)致力于打造极致易用的数据探索与分析体验。
极限科技是一支年轻的团队,采用天然分布式的方式来进行远程协作,员工分布在全球各地,希望通过努力成为中国乃至全球企业大数据实时搜索分析产品的首选,为中国技术品牌输出添砖加瓦。
收起阅读 »
社区日报 第1740期 (2023-11-17)
1、IBM 工程师分享 大模型实战日常博客全集
https://heidloff.net/archives/
2、学术报告:基于深度学习的神经语义搜索
https://hub.baai.ac.cn/view/16490
3、语义检索在工业界使用 PPT
https://zliu.org/files/talks/ccir2019-20190921.pdf
4、号外!——Elastic 官方收编了 OpsterHQ。
https://www.elastic.co/cn/blog ... orces
编辑:铭毅天下
更多资讯:http://news.searchkit.cn
1、IBM 工程师分享 大模型实战日常博客全集
https://heidloff.net/archives/
2、学术报告:基于深度学习的神经语义搜索
https://hub.baai.ac.cn/view/16490
3、语义检索在工业界使用 PPT
https://zliu.org/files/talks/ccir2019-20190921.pdf
4、号外!——Elastic 官方收编了 OpsterHQ。
https://www.elastic.co/cn/blog ... orces
编辑:铭毅天下
更多资讯:http://news.searchkit.cn 收起阅读 »