社区日报 第1670期 (2023-07-24)
https://blog.csdn.net/UbuntuTo ... 68368
2. Elasticsearch:实用 BM25算法及其变量
https://elasticstack.blog.csdn ... 39480
3. Elasticsearch 倒排索引与相关性算法计算
https://zhuanlan.zhihu.com/p/91603911
编辑:yuebancanghai
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
B站:https://ela.st/bilibili
https://blog.csdn.net/UbuntuTo ... 68368
2. Elasticsearch:实用 BM25算法及其变量
https://elasticstack.blog.csdn ... 39480
3. Elasticsearch 倒排索引与相关性算法计算
https://zhuanlan.zhihu.com/p/91603911
编辑:yuebancanghai
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
B站:https://ela.st/bilibili 收起阅读 »
INFINI Labs 产品更新 | Easysearch 新增分词插件、Gateway 支持邮件发送等功能

INFINI Labs 产品又更新啦~,本次更新概要如下:Easysearch 新增了分词插件、优化了生命周期管理功能等;Gateway 新增 smtp 过滤器来支持邮件的发送,支持自动跳过因为异常关闭而损坏的磁盘队列文件等;Console 新增熔断器监控指标、新增矩形树图(Treemap)、优化了探针 Agent 指标采集和集群自动关联操作等。欢迎大家下载体验。
INFINI Easysearch v1.4.0
INFINI Easysearch 是一个分布式的近实时搜索与分析引擎,核心引擎基于开源的 Apache Lucene。Easysearch 衍生自基于开源协议 Apache 2.0 的 Elasticsearch 7.10 版本。Easysearch 的目标是提供一个轻量级的 Elasticsearch 可替代版本,并继续完善和支持更多的企业级功能。
Easysearch 本次更新如下:
Features
- 索引生命周期管理增加 wait_for_snapshot 操作,在删除索引之前,等待执行指定的快照管理策略,这样可以确保已删除索引的快照可用
- 增加 analysis-hanlp 分词插件
- 增加 jieba 分词插件
Bug fix
- 修复启用 index.source_reuse 时,对复杂多层 json 的 source 字段 解析不正确的 Bug
Improvements
- 更新索引生命周期管理 api 文档,增加策略应用和更新说明,增加 wait_for_snapshot 说明
- 执行
initialize.sh命令时增加初始化确认提示,是否将 admin 密码记录日志
INFINI Gateway v1.17.0
INFINI Gateway 是一个面向搜索场景的高性能数据网关,所有请求都经过网关处理后再转发到后端的搜索业务集群。基于 INFINI Gateway 可以实现索引级别的限速限流、常见查询的缓存加速、查询请求的审计、查询结果的动态修改等等。
Gateway 本次更新如下:
Features
- 新增 consumer Processor 来标准化订阅消息队列
- 新增 smtp 过滤器来支持邮件的发送
Bug fix
- 支持自动跳过因为异常关闭而损坏的磁盘队列文件
INFINI Console v1.4.0
INFINI Console 是一款非常轻量级的多集群、跨版本的搜索基础设施统一管控平台。通过对流行的搜索引擎基础设施进行跨版本、多集群的集中纳管, 企业可以快速方便的统一管理企业内部的不同版本的多套搜索集群。
Console 在线体验: http://demo.infini.cloud (用户名/密码:readonly/readonly)。
Console 本次更新如下:
Features
- 新增熔断器监控指标
- 网关队列管理支持多选删除消费者
- 数据看板新增组件矩形树图

Bug fix
- 修复开发工具智能提示兼容性问题
- 修复探针列表状态显示异常的问题
- 修复探针列表分页不生效的问题
- 修复数据看板 统计函数显示不对的问题
- 修复探针下发采集指标配置重复的问题
- 修复数据看板设置过滤条件不生效的问题
- 修复主机列表探针状态不对的问题
- 修复网关管理删除队列不成功的问题
- 修复数据探索当前集群没索引时跳转的问题
- 修复数据看板编辑状态下点击事件的问题
Improvements
- 探针进程关联支持通过选择集群自动关联,简化操作
- 探针列表支持排序
- 探针支持向上滚动查看节点日志
- 采集监控指标添加 cluster_uuid 信息
- 数据看板支持配置指标排序
INFINI Agent v0.6.0
INFINI Agent 是 INFINI Console 的一个可选探针组件,负责采集和上传集群指标和日志等信息,并可通过 Console 管理。Agent 支持主流操作系统和平台,安装包轻量且无任何外部依赖,可以快速方便地安装。
Agent 本次更新如下:
Features
- 采集监控指标添加 cluster_uuid 信息
Improvements
- 修复发现节点进程信息时获取不到最新集群配置的问题
期待反馈
欢迎下载体验使用,如果您在使用过程中遇到如何疑问或者问题,欢迎前往 INFINI Labs Github(https://github.com/infinilabs) 中的对应项目中提交 Feature Request 或提交 Bug。
- INFINI Gateway: https://github.com/infinilabs/gateway/issues
- INFINI Console: https://github.com/infinilabs/console/issues
- 下载地址: https://www.infinilabs.com/download
或者通过 Discord 渠道加入聊天室:https://discord.com/invite/tnZ8S5vQ
欢迎大家微信扫码添加小助手(INFINI-Labs),加入用户群讨论,或者扫码加入我们的知识星球一起学习交流。

关于极限科技(INFINI Labs)

极限科技,全称极限数据(北京)科技有限公司,是一家专注于实时搜索与数据分析的软件公司。旗下品牌极限实验室(INFINI Labs)致力于打造极致易用的数据探索与分析体验。
极限科技是一支年轻的团队,采用天然分布式的方式来进行远程协作,员工分布在全球各地,希望通过努力成为中国乃至全球企业大数据实时搜索分析产品的首选,为中国技术品牌输出添砖加瓦。

INFINI Labs 产品又更新啦~,本次更新概要如下:Easysearch 新增了分词插件、优化了生命周期管理功能等;Gateway 新增 smtp 过滤器来支持邮件的发送,支持自动跳过因为异常关闭而损坏的磁盘队列文件等;Console 新增熔断器监控指标、新增矩形树图(Treemap)、优化了探针 Agent 指标采集和集群自动关联操作等。欢迎大家下载体验。
INFINI Easysearch v1.4.0
INFINI Easysearch 是一个分布式的近实时搜索与分析引擎,核心引擎基于开源的 Apache Lucene。Easysearch 衍生自基于开源协议 Apache 2.0 的 Elasticsearch 7.10 版本。Easysearch 的目标是提供一个轻量级的 Elasticsearch 可替代版本,并继续完善和支持更多的企业级功能。
Easysearch 本次更新如下:
Features
- 索引生命周期管理增加 wait_for_snapshot 操作,在删除索引之前,等待执行指定的快照管理策略,这样可以确保已删除索引的快照可用
- 增加 analysis-hanlp 分词插件
- 增加 jieba 分词插件
Bug fix
- 修复启用 index.source_reuse 时,对复杂多层 json 的 source 字段 解析不正确的 Bug
Improvements
- 更新索引生命周期管理 api 文档,增加策略应用和更新说明,增加 wait_for_snapshot 说明
- 执行
initialize.sh命令时增加初始化确认提示,是否将 admin 密码记录日志
INFINI Gateway v1.17.0
INFINI Gateway 是一个面向搜索场景的高性能数据网关,所有请求都经过网关处理后再转发到后端的搜索业务集群。基于 INFINI Gateway 可以实现索引级别的限速限流、常见查询的缓存加速、查询请求的审计、查询结果的动态修改等等。
Gateway 本次更新如下:
Features
- 新增 consumer Processor 来标准化订阅消息队列
- 新增 smtp 过滤器来支持邮件的发送
Bug fix
- 支持自动跳过因为异常关闭而损坏的磁盘队列文件
INFINI Console v1.4.0
INFINI Console 是一款非常轻量级的多集群、跨版本的搜索基础设施统一管控平台。通过对流行的搜索引擎基础设施进行跨版本、多集群的集中纳管, 企业可以快速方便的统一管理企业内部的不同版本的多套搜索集群。
Console 在线体验: http://demo.infini.cloud (用户名/密码:readonly/readonly)。
Console 本次更新如下:
Features
- 新增熔断器监控指标
- 网关队列管理支持多选删除消费者
- 数据看板新增组件矩形树图

Bug fix
- 修复开发工具智能提示兼容性问题
- 修复探针列表状态显示异常的问题
- 修复探针列表分页不生效的问题
- 修复数据看板 统计函数显示不对的问题
- 修复探针下发采集指标配置重复的问题
- 修复数据看板设置过滤条件不生效的问题
- 修复主机列表探针状态不对的问题
- 修复网关管理删除队列不成功的问题
- 修复数据探索当前集群没索引时跳转的问题
- 修复数据看板编辑状态下点击事件的问题
Improvements
- 探针进程关联支持通过选择集群自动关联,简化操作
- 探针列表支持排序
- 探针支持向上滚动查看节点日志
- 采集监控指标添加 cluster_uuid 信息
- 数据看板支持配置指标排序
INFINI Agent v0.6.0
INFINI Agent 是 INFINI Console 的一个可选探针组件,负责采集和上传集群指标和日志等信息,并可通过 Console 管理。Agent 支持主流操作系统和平台,安装包轻量且无任何外部依赖,可以快速方便地安装。
Agent 本次更新如下:
Features
- 采集监控指标添加 cluster_uuid 信息
Improvements
- 修复发现节点进程信息时获取不到最新集群配置的问题
期待反馈
欢迎下载体验使用,如果您在使用过程中遇到如何疑问或者问题,欢迎前往 INFINI Labs Github(https://github.com/infinilabs) 中的对应项目中提交 Feature Request 或提交 Bug。
- INFINI Gateway: https://github.com/infinilabs/gateway/issues
- INFINI Console: https://github.com/infinilabs/console/issues
- 下载地址: https://www.infinilabs.com/download
或者通过 Discord 渠道加入聊天室:https://discord.com/invite/tnZ8S5vQ
欢迎大家微信扫码添加小助手(INFINI-Labs),加入用户群讨论,或者扫码加入我们的知识星球一起学习交流。

关于极限科技(INFINI Labs)

极限科技,全称极限数据(北京)科技有限公司,是一家专注于实时搜索与数据分析的软件公司。旗下品牌极限实验室(INFINI Labs)致力于打造极致易用的数据探索与分析体验。
极限科技是一支年轻的团队,采用天然分布式的方式来进行远程协作,员工分布在全球各地,希望通过努力成为中国乃至全球企业大数据实时搜索分析产品的首选,为中国技术品牌输出添砖加瓦。
收起阅读 »社区日报 第1669期 (2023-07-21)
1、Spring 和 Elasticsearch:将搜索功能构建到您的应用程序中
https://medium.com/%40Alexande ... 8450b
2、使用 PostgreSQL 的全文搜索引擎(第 2 部分):Postgres 与 Elasticsearch
https://xata.io/blog/postgres- ... earch
3、资产管理平台 (AMP) 中的 Elasticsearch 索引策略
https://netflixtechblog.com/el ... 1e541
编辑:铭毅天下
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
B站: https://ela.st/bilibili
1、Spring 和 Elasticsearch:将搜索功能构建到您的应用程序中
https://medium.com/%40Alexande ... 8450b
2、使用 PostgreSQL 的全文搜索引擎(第 2 部分):Postgres 与 Elasticsearch
https://xata.io/blog/postgres- ... earch
3、资产管理平台 (AMP) 中的 Elasticsearch 索引策略
https://netflixtechblog.com/el ... 1e541
编辑:铭毅天下
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
B站: https://ela.st/bilibili 收起阅读 »
社区日报 第1668期 (2023-07-20)
https://medium.com/globant/an- ... c050a
2.增强恶意软件检测:使用 Elastic SIEM 的端点检测和响应解决方案(需要梯子)
https://medium.com/bugbountywr ... ba803
3.现实世界中的 Rust:使用 Elasticsearch 进行超快速数据索引(需要梯子)
https://itnext.io/rust-in-the- ... 39ba7
编辑:Se7en
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
B站: https://ela.st/bilibili
https://medium.com/globant/an- ... c050a
2.增强恶意软件检测:使用 Elastic SIEM 的端点检测和响应解决方案(需要梯子)
https://medium.com/bugbountywr ... ba803
3.现实世界中的 Rust:使用 Elasticsearch 进行超快速数据索引(需要梯子)
https://itnext.io/rust-in-the- ... 39ba7
编辑:Se7en
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
B站: https://ela.st/bilibili 收起阅读 »
用极限网关实现ES容灾,简单!
身为 IT 人士,大伙身边的各种系统肯定不少吧。系统虽多,但最最最重要的那套、那几套,大伙肯定是捧在手心,关怀备至。如此重要的系统,万一发生故障了且短期无法恢复,该如何保障业务持续运行? 有过这方面思考或经验的同学,肯定脱口而出--切灾备啊。 是的,接下来我来介绍下我们的 ES 灾备方案。当然如果你有更好的,请使用各种可用的渠道联系我们。
总体设计
通过极限网关将应用对主集群的写操作,复制到灾备集群。应用发送的读请求则直接转发到主集群,并将响应结果转发给应用。应用对网关无感知,访问方式与访问 ES 集群一样。
方案优势
- 轻量级
极限网关使用 Golang 编写,安装包很小,只有 10MB 左右,没有任何外部环境依赖,部署安装都非常简单,只需要下载对应平台的二进制可执行文件,启动网关程序的二进制程序文件执行即可。
- 跨版本支持
极限网关针对不同的 Elasticsearch 版本做了兼容和针对性处理,能够让业务代码无缝的进行适配,后端 Elasticsearch 集群版本升级能够做到无缝过渡,降低版本升级和数据迁移的复杂度。
- 高可用
极限网关内置多种高可用解决方案,前端请求入口支持基于虚拟 IP 的双机热备,后端集群支持集群拓扑的自动感知,节点上下线能自动发现,自动处理后端故障,自动进行请求的重试和迁移。
- 灵活性
主备集群都是可读可写,切换迅速,只需切换网关到另一套配置即可。回切灵活,恢复使用原配置即可。
架构图

网关程序部署
下载
根据操作系统和平台选择下面相应的安装包: 解压到指定目录:
mkdir gateway
tar -zxf xxx.gz -C 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
后台运行
./gateway-linux-amd64 -service install
Success
./gateway-linux-amd64 -service start
Success
卸载服务
./gateway-linux-amd64 -service stop
Success
./gateway-linux-amd64 -service uninstall
Success
灾备功能测试
在灾备场景下,为保证数据一致性,对集群的访问操作都通过网关进行。注意只有 bulk API 的操作才会被复制到备集群。 在此次测试中,网关灾备配置功能为:
- 主备集群正常时
读写请求正常执行; 写请求被记录到队列,备集群实时消费队列数据。
- 当主集群故障时
写入请求报错,主备集群都不写入数据; 查询请求转到备集群执行,并返回结果给客户端。
- 当备集群故障时
读写请求都正常执行; 写操作记录到磁盘队列,待备集群恢复后,自动消费队列数据直到两个集群一致。
主备集群正常时写入、查询测试
写入数据
# 通过网关写入数据
curl -X POST "localhost:18000/_bulk?pretty" -H 'Content-Type: application/json' -uelastic:password -d'
{ "index" : { "_index" : "test", "_id" : "1" } }
{ "field1" : "value1" }
{ "create" : { "_index" : "test", "_id" : "2" } }
{ "field2" : "value2" }
'

查询数据
# 查询主集群
curl 192.168.56.3:7171/test/_search?pretty -uelastic:password

# 查询备集群
curl 192.168.56.3:9200/test/_search?pretty -uadmin:admin

# 查询网关,网关转发给主集群执行
curl 192.168.56.3:18000/test/_search?pretty -uelastic:password

主备集群都已写入数据,且数据一致。通过网关查询,也正常返回。
删除和更新文档
# 通过网关删除和更新文档
curl -X POST "192.168.56.3:18000/_bulk?pretty" -H 'Content-Type: application/json' -uelastic:password -d'
{ "delete" : { "_index" : "test", "_id" : "1" } }
{ "update" : {"_id" : "2", "_index" : "test"} }
{ "doc" : {"field2" : "value2-updated"} }
'

查询数据
# 查询主集群
curl 192.168.56.3:7171/test/_search?pretty -uelastic:password

# 查询备集群
curl 192.168.56.3:9200/test/_search?pretty -uadmin:admin

两个集群都已执行删除和更新操作,数据一致。
主集群故障时写入、查询测试
为模拟主集群故障,直接关闭主集群。
写入数据
# 通过网关写入数据
curl -X POST "192.168.56.3:18000/_bulk?pretty" -H 'Content-Type: application/json' -uelastic:password -d'
{ "index" : { "_index" : "test", "_id" : "3" } }
{ "field3" : "value3" }
{ "create" : { "_index" : "test", "_id" : "4" } }
{ "field4" : "value4" }
'
写入数据报错

查询数据
# 通过网关查询,因为主集群不可用,网关将查询转发到备集群执行
curl 192.168.56.3:18000/test/_search?pretty -uelastic:password

正常查询到数据,说明请求被转发到了备集群执行。
备集群故障时写入、查询测试
为模拟备集群故障,直接关闭备集群。
写入数据
# 通过网关写入数据
curl -X POST "192.168.56.3:18000/_bulk?pretty" -H 'Content-Type: application/json' -uelastic:password -d'
{ "index" : { "_index" : "test", "_id" : "5" } }
{ "field5" : "value5" }
{ "create" : { "_index" : "test", "_id" : "6" } }
{ "field6" : "value6" }
'

数据正常写入。
查询数据
# 通过网关查询
curl 192.168.56.3:18000/test/_search?pretty -uelastic:password

查询成功返回。主集群成功写入了两条新数据。同时此数据会被记录到备集群的队列中,待备集群恢复后,会消费此队列追数据。
恢复备集群
启动备集群。
查询数据
等待片刻或通过 INFINI Console 确定网关队列消费完毕后,查询备集群的数据。
(生产和消费 offset 相同,说明消费完毕。)

# 查询备集群的数据
curl 192.168.56.3:9200/test/_search?pretty -uadmin:admin

备集群启动后自动消费队列数据,消费完后备集群数据达到与主集群数据一致。
灾备切换
测试了这么多,终于到切换的时刻了。切换前我们判断下主系统是否短期无法修复。

如果我们判断主用系统无法短时间恢复,要执行切换。非常简单,我们直接将配置文件中定义的主备集群互换,然后重启网关程序就行了。但我们推荐在相同主机上另部署一套网关程序--网关B,先前那套用网关A指代。网关B中的配置文件把原备集群定义为主集群,原主集群定义为备集群。若要执行切换,我们先停止网关A,然后启动网关B,此时应用连接到网关(端口不变),就把原备系统当作主系统使用,把原主系统当作备系统,也就完成了主备系统的切换。
灾备回切
当原主集群修复后,正常启动,就会从消费队列追写修复期间产生数据直到主备数据一致,同样我们可通过 INFINI Console 查看消费的进度。如果大家还是担心数据的一致性,INFINI Console 还能帮大家做[校验数据]()任务,做到数据完全一致后(文档数量及文档内容一致),才进行回切。

回切也非常简单,停止网关B,启动网关A即可。
网关高可用
网关自带浮动 IP 模块,可进行双机热备。客户端通过 VIP 连接网关,网关出现故障时,VIP 漂移到备网关。
视频教程戳这里。

这样的优点是简单,不足是只有一个网关在线提供服务。如果想多个网关在线提供服务,则需搭配分布式消息系统一起工作,架构如下。

前端通过负载均衡将流量分散到多个在线网关,网关将消息存入分布式消息系统。此时,网关可看作无状态应用,可根据需要扩缩规模。
以上就是我介绍的ES灾备方案,是不是相当灵活了。有问题还是那句话 Call me 。
关于极限网关
INFINI Gateway 是一个面向搜索场景的高性能数据网关,所有请求都经过网关处理后再转发到后端的搜索业务集群。基于 INFINI Gateway,可以实现索引级别的限速限流、常见查询的缓存加速、查询请求的审计、查询结果的动态修改等等。
身为 IT 人士,大伙身边的各种系统肯定不少吧。系统虽多,但最最最重要的那套、那几套,大伙肯定是捧在手心,关怀备至。如此重要的系统,万一发生故障了且短期无法恢复,该如何保障业务持续运行? 有过这方面思考或经验的同学,肯定脱口而出--切灾备啊。 是的,接下来我来介绍下我们的 ES 灾备方案。当然如果你有更好的,请使用各种可用的渠道联系我们。
总体设计
通过极限网关将应用对主集群的写操作,复制到灾备集群。应用发送的读请求则直接转发到主集群,并将响应结果转发给应用。应用对网关无感知,访问方式与访问 ES 集群一样。
方案优势
- 轻量级
极限网关使用 Golang 编写,安装包很小,只有 10MB 左右,没有任何外部环境依赖,部署安装都非常简单,只需要下载对应平台的二进制可执行文件,启动网关程序的二进制程序文件执行即可。
- 跨版本支持
极限网关针对不同的 Elasticsearch 版本做了兼容和针对性处理,能够让业务代码无缝的进行适配,后端 Elasticsearch 集群版本升级能够做到无缝过渡,降低版本升级和数据迁移的复杂度。
- 高可用
极限网关内置多种高可用解决方案,前端请求入口支持基于虚拟 IP 的双机热备,后端集群支持集群拓扑的自动感知,节点上下线能自动发现,自动处理后端故障,自动进行请求的重试和迁移。
- 灵活性
主备集群都是可读可写,切换迅速,只需切换网关到另一套配置即可。回切灵活,恢复使用原配置即可。
架构图

网关程序部署
下载
根据操作系统和平台选择下面相应的安装包: 解压到指定目录:
mkdir gateway
tar -zxf xxx.gz -C 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
后台运行
./gateway-linux-amd64 -service install
Success
./gateway-linux-amd64 -service start
Success
卸载服务
./gateway-linux-amd64 -service stop
Success
./gateway-linux-amd64 -service uninstall
Success
灾备功能测试
在灾备场景下,为保证数据一致性,对集群的访问操作都通过网关进行。注意只有 bulk API 的操作才会被复制到备集群。 在此次测试中,网关灾备配置功能为:
- 主备集群正常时
读写请求正常执行; 写请求被记录到队列,备集群实时消费队列数据。
- 当主集群故障时
写入请求报错,主备集群都不写入数据; 查询请求转到备集群执行,并返回结果给客户端。
- 当备集群故障时
读写请求都正常执行; 写操作记录到磁盘队列,待备集群恢复后,自动消费队列数据直到两个集群一致。
主备集群正常时写入、查询测试
写入数据
# 通过网关写入数据
curl -X POST "localhost:18000/_bulk?pretty" -H 'Content-Type: application/json' -uelastic:password -d'
{ "index" : { "_index" : "test", "_id" : "1" } }
{ "field1" : "value1" }
{ "create" : { "_index" : "test", "_id" : "2" } }
{ "field2" : "value2" }
'

查询数据
# 查询主集群
curl 192.168.56.3:7171/test/_search?pretty -uelastic:password

# 查询备集群
curl 192.168.56.3:9200/test/_search?pretty -uadmin:admin

# 查询网关,网关转发给主集群执行
curl 192.168.56.3:18000/test/_search?pretty -uelastic:password

主备集群都已写入数据,且数据一致。通过网关查询,也正常返回。
删除和更新文档
# 通过网关删除和更新文档
curl -X POST "192.168.56.3:18000/_bulk?pretty" -H 'Content-Type: application/json' -uelastic:password -d'
{ "delete" : { "_index" : "test", "_id" : "1" } }
{ "update" : {"_id" : "2", "_index" : "test"} }
{ "doc" : {"field2" : "value2-updated"} }
'

查询数据
# 查询主集群
curl 192.168.56.3:7171/test/_search?pretty -uelastic:password

# 查询备集群
curl 192.168.56.3:9200/test/_search?pretty -uadmin:admin

两个集群都已执行删除和更新操作,数据一致。
主集群故障时写入、查询测试
为模拟主集群故障,直接关闭主集群。
写入数据
# 通过网关写入数据
curl -X POST "192.168.56.3:18000/_bulk?pretty" -H 'Content-Type: application/json' -uelastic:password -d'
{ "index" : { "_index" : "test", "_id" : "3" } }
{ "field3" : "value3" }
{ "create" : { "_index" : "test", "_id" : "4" } }
{ "field4" : "value4" }
'
写入数据报错

查询数据
# 通过网关查询,因为主集群不可用,网关将查询转发到备集群执行
curl 192.168.56.3:18000/test/_search?pretty -uelastic:password

正常查询到数据,说明请求被转发到了备集群执行。
备集群故障时写入、查询测试
为模拟备集群故障,直接关闭备集群。
写入数据
# 通过网关写入数据
curl -X POST "192.168.56.3:18000/_bulk?pretty" -H 'Content-Type: application/json' -uelastic:password -d'
{ "index" : { "_index" : "test", "_id" : "5" } }
{ "field5" : "value5" }
{ "create" : { "_index" : "test", "_id" : "6" } }
{ "field6" : "value6" }
'

数据正常写入。
查询数据
# 通过网关查询
curl 192.168.56.3:18000/test/_search?pretty -uelastic:password

查询成功返回。主集群成功写入了两条新数据。同时此数据会被记录到备集群的队列中,待备集群恢复后,会消费此队列追数据。
恢复备集群
启动备集群。
查询数据
等待片刻或通过 INFINI Console 确定网关队列消费完毕后,查询备集群的数据。
(生产和消费 offset 相同,说明消费完毕。)

# 查询备集群的数据
curl 192.168.56.3:9200/test/_search?pretty -uadmin:admin

备集群启动后自动消费队列数据,消费完后备集群数据达到与主集群数据一致。
灾备切换
测试了这么多,终于到切换的时刻了。切换前我们判断下主系统是否短期无法修复。

如果我们判断主用系统无法短时间恢复,要执行切换。非常简单,我们直接将配置文件中定义的主备集群互换,然后重启网关程序就行了。但我们推荐在相同主机上另部署一套网关程序--网关B,先前那套用网关A指代。网关B中的配置文件把原备集群定义为主集群,原主集群定义为备集群。若要执行切换,我们先停止网关A,然后启动网关B,此时应用连接到网关(端口不变),就把原备系统当作主系统使用,把原主系统当作备系统,也就完成了主备系统的切换。
灾备回切
当原主集群修复后,正常启动,就会从消费队列追写修复期间产生数据直到主备数据一致,同样我们可通过 INFINI Console 查看消费的进度。如果大家还是担心数据的一致性,INFINI Console 还能帮大家做[校验数据]()任务,做到数据完全一致后(文档数量及文档内容一致),才进行回切。

回切也非常简单,停止网关B,启动网关A即可。
网关高可用
网关自带浮动 IP 模块,可进行双机热备。客户端通过 VIP 连接网关,网关出现故障时,VIP 漂移到备网关。
视频教程戳这里。

这样的优点是简单,不足是只有一个网关在线提供服务。如果想多个网关在线提供服务,则需搭配分布式消息系统一起工作,架构如下。

前端通过负载均衡将流量分散到多个在线网关,网关将消息存入分布式消息系统。此时,网关可看作无状态应用,可根据需要扩缩规模。
以上就是我介绍的ES灾备方案,是不是相当灵活了。有问题还是那句话 Call me 。
关于极限网关
INFINI Gateway 是一个面向搜索场景的高性能数据网关,所有请求都经过网关处理后再转发到后端的搜索业务集群。基于 INFINI Gateway,可以实现索引级别的限速限流、常见查询的缓存加速、查询请求的审计、查询结果的动态修改等等。
官网文档:https://www.infinilabs.com/docs/latest/gateway
收起阅读 »社区日报 第1667期 (2023-07-19)
https://blog.csdn.net/UbuntuTo ... 84570
2.Elasticsearch:语义搜索、知识图和向量数据库概述
https://blog.csdn.net/UbuntuTo ... 58459
3.我们如何在 Elasticsearch 8.6、8.7 和 8.8 中加速数据摄入
https://blog.csdn.net/UbuntuTo ... 53016
编辑:kin122
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
B站:https://ela.st/bilibili
https://blog.csdn.net/UbuntuTo ... 84570
2.Elasticsearch:语义搜索、知识图和向量数据库概述
https://blog.csdn.net/UbuntuTo ... 58459
3.我们如何在 Elasticsearch 8.6、8.7 和 8.8 中加速数据摄入
https://blog.csdn.net/UbuntuTo ... 53016
编辑:kin122
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
B站:https://ela.st/bilibili 收起阅读 »
社区日报 第1666期 (2023-07-18)
1. 不会做chatbot?我教你啊(需要梯子)
https://medium.com/%40samzaman ... 4d9f9
2. 能用ES做语义搜索吗(需要梯子)
https://blog.gopenai.com/seman ... d85d5
1. Doris 能一把把 ES + Hive + PG全代替掉吗(需要梯子)
https://blog.devgenius.io/repl ... dc792
编辑:斯蒂文
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
B站: https://ela.st/bilibili
1. 不会做chatbot?我教你啊(需要梯子)
https://medium.com/%40samzaman ... 4d9f9
2. 能用ES做语义搜索吗(需要梯子)
https://blog.gopenai.com/seman ... d85d5
1. Doris 能一把把 ES + Hive + PG全代替掉吗(需要梯子)
https://blog.devgenius.io/repl ... dc792
编辑:斯蒂文
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
B站: https://ela.st/bilibili
收起阅读 »
社区日报 第1665期 (2023-07-17)
https://blog.51cto.com/u_14886891/5246303
2. 企查查基于阿里云Elasticsearch 在复杂检索场景中的性能优化
https://developer.aliyun.com/article/1226859
3. Elasticsearch中使用脚本插件修改打分
https://blog.csdn.net/weixin_3 ... 13681
编辑:yuebancanghai
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
B站:https://ela.st/bilibili
https://blog.51cto.com/u_14886891/5246303
2. 企查查基于阿里云Elasticsearch 在复杂检索场景中的性能优化
https://developer.aliyun.com/article/1226859
3. Elasticsearch中使用脚本插件修改打分
https://blog.csdn.net/weixin_3 ... 13681
编辑:yuebancanghai
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
B站:https://ela.st/bilibili 收起阅读 »
社区日报 第1664期 (2023-07-14)
1、真的需要向量数据库吗?
https://www.ethanrosenthal.com ... -ann/
2、Elasticsearch 向量检索背后设计逻辑
https://www.elastic.co/cn/blog ... onale
3、Elasticsearch 向量检索案例
https://medium.com/state-of-th ... 6229c
编辑:铭毅天下
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
B站: https://ela.st/bilibili
1、真的需要向量数据库吗?
https://www.ethanrosenthal.com ... -ann/
2、Elasticsearch 向量检索背后设计逻辑
https://www.elastic.co/cn/blog ... onale
3、Elasticsearch 向量检索案例
https://medium.com/state-of-th ... 6229c
编辑:铭毅天下
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
B站: https://ela.st/bilibili 收起阅读 »
社区日报 第1663期 (2023-07-13)
https://medium.com/%40pogaurav ... bf14a
2.提示 Elasticsearch 查询速度的指南(需要梯子)
https://medium.com/elastic-sea ... 87d25
3.Elasticsearch 在 Pelago 的应用(需要梯子)
https://medium.com/%40amans.rl ... 3ea3e
编辑:Se7en
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
B站: https://ela.st/bilibili
https://medium.com/%40pogaurav ... bf14a
2.提示 Elasticsearch 查询速度的指南(需要梯子)
https://medium.com/elastic-sea ... 87d25
3.Elasticsearch 在 Pelago 的应用(需要梯子)
https://medium.com/%40amans.rl ... 3ea3e
编辑:Se7en
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
B站: https://ela.st/bilibili 收起阅读 »
给 ES 插上向量检索的翅膀 | DataFunSummit 2023 峰会演讲内容速达
近日,由 DataFun 主办的 DataFunSummit 2023 数据基础架构峰会 圆满落下帷幕,本次峰会邀请了腾讯、百度、字节、极限科技、Zilliz 等众多企业技术专家为大家带来分布式存储以及向量数据库的架构原理、性能优化与实践解析分享。

在 向量数据库架构与实践论坛 中,极限科技搜索引擎研发工程师张磊受邀出席做了《给 ES 插上向量检索的翅膀》的主题演讲。据介绍,本次演讲主要介绍了 Elasticsearch(ES)与向量技术的融合,展示其在不同行业中的应用场景和优势,同时也对 ES 与向量的技术细节进行详细讨论,并通过具体案例演示如何利用向量提升搜索能力。
讲师介绍
张磊,极限科技 Easysearch 引擎研发工程师,2013 年开始接触 Elasticsearch,10 余年搜索相关经验,之前主要做一些围绕 Elasticsearch 在日志检索和公安大数据相关业务的开发,对 Elasticsearch 和 Lucene 源码比较熟悉,目前专注于公司内部搜索产品的开发。
《给 ES 插上向量检索的翅膀》PPT 内容








更多 PPT 内容参见 https://elasticsearch.cn/slides/322
关于 Easysearch

INFINI Easysearch 是一个分布式的近实时搜索与分析引擎,核心引擎基于开源的 Apache Lucene。Easysearch 衍生自基于开源协议 Apache 2.0 的 Elasticsearch 7.10 版本。Easysearch 的目标是提供一个轻量级的 Elasticsearch 可替代版本,并继续完善和支持更多的企业级功能。与 Elasticsearch 相比,Easysearch 更关注在搜索业务场景的优化和继续保持其产品的简洁与易用性。
近日,由 DataFun 主办的 DataFunSummit 2023 数据基础架构峰会 圆满落下帷幕,本次峰会邀请了腾讯、百度、字节、极限科技、Zilliz 等众多企业技术专家为大家带来分布式存储以及向量数据库的架构原理、性能优化与实践解析分享。

在 向量数据库架构与实践论坛 中,极限科技搜索引擎研发工程师张磊受邀出席做了《给 ES 插上向量检索的翅膀》的主题演讲。据介绍,本次演讲主要介绍了 Elasticsearch(ES)与向量技术的融合,展示其在不同行业中的应用场景和优势,同时也对 ES 与向量的技术细节进行详细讨论,并通过具体案例演示如何利用向量提升搜索能力。
讲师介绍
张磊,极限科技 Easysearch 引擎研发工程师,2013 年开始接触 Elasticsearch,10 余年搜索相关经验,之前主要做一些围绕 Elasticsearch 在日志检索和公安大数据相关业务的开发,对 Elasticsearch 和 Lucene 源码比较熟悉,目前专注于公司内部搜索产品的开发。
《给 ES 插上向量检索的翅膀》PPT 内容








更多 PPT 内容参见 https://elasticsearch.cn/slides/322
关于 Easysearch

INFINI Easysearch 是一个分布式的近实时搜索与分析引擎,核心引擎基于开源的 Apache Lucene。Easysearch 衍生自基于开源协议 Apache 2.0 的 Elasticsearch 7.10 版本。Easysearch 的目标是提供一个轻量级的 Elasticsearch 可替代版本,并继续完善和支持更多的企业级功能。与 Elasticsearch 相比,Easysearch 更关注在搜索业务场景的优化和继续保持其产品的简洁与易用性。
官网文档:https://www.infinilabs.com/docs/latest/easysearch
下载地址:https://www.infinilabs.com/download
收起阅读 »社区日报 第1662期 (2023-07-12)
https://mp.weixin.qq.com/s/9U_w5c0Qx9rYFKcu71Up6w
2.我们如何在Elasticsearch 8.6, 8.7和8.8中提升写入速度
https://mp.weixin.qq.com/s/dgkPK3ManEVdhf0cWLy-pg
3.Elasticsearch:文档版本控制和乐观并发控制
https://blog.csdn.net/UbuntuTo ... 49113
编辑:kin122
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
B站:https://ela.st/bilibili
https://mp.weixin.qq.com/s/9U_w5c0Qx9rYFKcu71Up6w
2.我们如何在Elasticsearch 8.6, 8.7和8.8中提升写入速度
https://mp.weixin.qq.com/s/dgkPK3ManEVdhf0cWLy-pg
3.Elasticsearch:文档版本控制和乐观并发控制
https://blog.csdn.net/UbuntuTo ... 49113
编辑:kin122
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
B站:https://ela.st/bilibili
收起阅读 »
社区日报 第1672期 (2023-07-10)
1. 来看看Canva的老铁们是怎么构建搜索系统的(I)(需要梯子)
https://medium.com/canvatech/s ... 3aef1
2. 来看看Canva的老铁们是怎么构建搜索系统的(II)(需要梯子)
https://medium.com/canvatech/s ... 607cd
3. 在Canva里是怎么测试搜索引擎效率的(需要梯子)
https://medium.com/canvatech/t ... c451d
编辑:斯蒂文
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
B站: https://ela.st/bilibili
1. 来看看Canva的老铁们是怎么构建搜索系统的(I)(需要梯子)
https://medium.com/canvatech/s ... 3aef1
2. 来看看Canva的老铁们是怎么构建搜索系统的(II)(需要梯子)
https://medium.com/canvatech/s ... 607cd
3. 在Canva里是怎么测试搜索引擎效率的(需要梯子)
https://medium.com/canvatech/t ... c451d
编辑:斯蒂文
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
B站: https://ela.st/bilibili
收起阅读 »
【INFINI Workshop 上海站】7 月 27 日一起动手实验玩转 Easysearch
活动时间:2023-07-27 13:30~17:30
活动地点:上海静安区武宁南路1号 WeWork 越商大厦 3 楼 3A 会议室
(注意:活动地址已更新,已报名小伙伴无需重新报名。)
分享议题
• Easysearch 总体介绍及搭建实战
• 基于 INFINI Console 实现跨版本、跨引擎统一管控
• Elasticsearch -> Easysearch 在线迁移实操
参会提示
• 请务必自备电脑(Windows 系统环境请提前安装好 Linux 虚拟机)
• 请提前在 INFINI Labs 官网下载对应平台最新安装包(INFINI Easysearch、INFINI Gateway、INFINI Console)
• 下载地址:https://www.infinilabs.com/download
名额有限,对 ES 国产化感兴趣的朋友们速度报名(扫描海报中的二维码或者点击 链接 即可免费报名)。
如有任何疑问可添加 INFINI Labs 小助手(微信号: INFINI-Labs)进行联系。
活动时间:2023-07-27 13:30~17:30
活动地点:上海静安区武宁南路1号 WeWork 越商大厦 3 楼 3A 会议室
(注意:活动地址已更新,已报名小伙伴无需重新报名。)
分享议题
• Easysearch 总体介绍及搭建实战
• 基于 INFINI Console 实现跨版本、跨引擎统一管控
• Elasticsearch -> Easysearch 在线迁移实操
参会提示
• 请务必自备电脑(Windows 系统环境请提前安装好 Linux 虚拟机)
• 请提前在 INFINI Labs 官网下载对应平台最新安装包(INFINI Easysearch、INFINI Gateway、INFINI Console)
• 下载地址:https://www.infinilabs.com/download
名额有限,对 ES 国产化感兴趣的朋友们速度报名(扫描海报中的二维码或者点击 链接 即可免费报名)。
如有任何疑问可添加 INFINI Labs 小助手(微信号: INFINI-Labs)进行联系。
收起阅读 »
社区日报 第1660期 (2023-07-06)
https://www.elastic.co/blog/op ... stant
2.E往无前|腾讯云大数据ES索引原理剖析及写入性能优化最佳实践
https://mp.weixin.qq.com/s/lIgtAqJM50ykfgEL_vyI_Q
3.Elasticsearch 发送警报通知到 Slack(需要梯子)
https://kulekci.medium.com/ale ... cf126
编辑:Se7en
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
B站: https://ela.st/bilibili
https://www.elastic.co/blog/op ... stant
2.E往无前|腾讯云大数据ES索引原理剖析及写入性能优化最佳实践
https://mp.weixin.qq.com/s/lIgtAqJM50ykfgEL_vyI_Q
3.Elasticsearch 发送警报通知到 Slack(需要梯子)
https://kulekci.medium.com/ale ... cf126
编辑:Se7en
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
B站: https://ela.st/bilibili 收起阅读 »


