Elasticsearch 国产化替代方案之一 Easysearch 的介绍与部署指南
一、前言
在国内数字化转型浪潮和 信创 大背景下,“替代进口”成为许多企业级应用所需要面对的重要课题,搜索领域也不例外。
Elasticsearch(简称 ES)作为一款业界领先的全文搜索和分析引擎,虽然功能强大,但在国内应用时会遇到诸如使用成本高、关键技术和版本开放策略变动大、安全合规担忧等问题。于是,“Elasticsearch 的国产化替代方案” 成了无数开发者和企业 IT 部门共同关注的热点。
读者留言:有 Elasticsearch 国产化替代品吗?现在国产化不让用 ES 了......
在诸多替代方案中,Easysearch 的出现令人眼前一亮。它不仅兼具 全文检索、向量检索、地理位置信息查询、聚合分析 等核心功能,还可直接平滑替换 Elasticsearch,并提供更加完善的企业级能力,让人对其未来应用前景充满期待。
接下来,本文将对 Easysearch 做一次深度解读,并以 CentOS 7 环境为例,分享一份简洁的部署指南。
二、Easysearch 概述
2.1 产品定位
Easysearch 是由 INFINI Labs 提供的分布式搜索型数据库,旨在满足企业在海量非结构化数据检索、全文检索、向量检索、地理位置信息查询、组合索引、多语种支持、聚合分析等多种场景的需求。
同时,Easysearch 也致力于打造开箱即用、极致易用的近实时搜索体验。
2.2 主要特性
轻量易用
整个安装包不到 50 MB,免去了繁琐的下载安装过程;
部署、运维成本较低。
内置安全
默认提供完整的安全功能,无需额外插件;
支持 LDAP 等企业常用鉴权方式,简化集成流程。
稳定可靠
修复了核心层面的大量问题,拥有严苛业务场景的实践验证;
即使在海量数据下依旧保持稳定性和可靠性。
完美替代 Elasticsearch
保留了 Elasticsearch 的核心 API 风格,迁移和使用门槛相对较低;
实现了 全文检索、地理位置查询、聚合分析等 ES 核心功能,并且在此基础上增加了企业级功能与优化。
2.3 适用场景(同 Elasticsearch)
企业内部搜索:文档、邮件、业务流程等信息检索;
电商与推荐:商品搜索、向量检索、个性化推荐;
日志与监控:监控大规模日志数据并实时检索分析;
地理信息查询:支持距离、坐标、区域匹配等丰富的地理查询能力。
三、部署指南(CentOS 7 环境为例)
前提:你已经部署过 Elasticsearch,相关 JAVA 环境变量、句柄设置已经 OK!
下面以 CentOS 7 为例,介绍 Easysearch 的部署过程。整体可简化为三个步骤:下载并解压 -> 初始化脚本 -> 启动。以下步骤也可在官方文档中查看更详细信息(官方部署文档地址)。
https://infinilabs.cn/docs/latest/easysearch/
3.1 下载安装包并解压
从 官方地址 获取最新版本的 Easysearch 安装包;
使用 wget
或者其他方式下载到 CentOS 服务器;
铭毅温馨提示:官方给出的命令行下载会导致 SSH 客户端卡死(如下图所示),建议参考我的文档步骤来。
解压到指定目录,如
/opt/easysearch
。
# 下载后的安装包名称为 easysearch-1.7.1-7-linux-amd64-bundle.tar.gz
wget - https://release.infinilabs.com/easysearch/stable/bundle/easysearch-1.7.1-7-linux-amd64-bundle.tar.gz
3.2 初始化脚本
解压之后,可以在 easysearch 下的 bin
目录下找到相应的初始化脚本。
在执行脚本前,请先检查以下注意事项:
脚本权限(默认就可以):确认当前用户或使用
root
用户进行操作,确保对初始化脚本有执行权限。环境变量:建议在脚本中或系统环境中配置好
JAVA_HOME
等必要环境变量(前提)。
执行脚本的效果包括:
自动生成默认密码或密钥;
可以根据业务需求修改服务端口、安全策略或适配配置。
安装N多插件。
cd /opt/easysearch && bin/initialize.sh
根据终端提示操作,生成初始密码或进行简单配置修改。
生成的密码文件在
logs
路径下(实话说,我不大习惯,自己找了 1 个多小时才找到):
用户名:
amdin
(与 Elasticsearch 不同)密码:是
admin
用户名之后的哈希值密码。

3.3 启动服务
初始化完成后,理论上即可启动 Easysearch。
但是我是云服务器,要外网访问,所以要改默认 IP 为 0.0.0.0
。改动如下:
bin/easysearch -d
执行成功后,检查进程是否正常运行,以及确认日志中无明显报错。若一切顺利,说明 Easysearch 已经在你的 CentOS 7 服务器上顺利部署。
验证成功的标志如下:
检查进程是否存在。
ps -ef | grep easysearch
检查端口是否存在。
netstat -natpl | grep 9200
curl 访问验证成功。
浏览器 Head 插件访问成功。
小贴士:如果需要配置开机自启动或以服务的方式运行,可将启动脚本添加到系统服务配置中,或在系统守护进程中进行相应设置。
具体参见官方文档即可。
四、Easysearch 的更多思考及建议
4.1 产品价值
Easysearch 作为一款核心搜索型数据库,能够为企业提供快速精准的搜索、智能分析能力,并以更低的资源消耗和更少的运维复杂度带来灵活稳定的使用体验。在对外或内部系统中,Easysearch 都有潜力帮助企业减少对国外商业组件的依赖,提升自主可控能力。
4.2 核心竞争力
社区与技术支持:国产化软件要想被大规模认可,离不开活跃的社区生态和可靠的技术支持。Easysearch 若能持续完善文档、工具链以及开源社区建设,将在市场上形成良性循环。
企业级扩展:在分布式协同、高可用、数据可视化集成、跨域数据搜索等领域进一步做深做实,为用户提供更具竞争力的解决方案。
4.3 未来发展方向
向量搜索能力:在越来越多的 NLP、语义检索、推荐场景中,向量搜索变成搜索引擎的核心竞争力之一。Easysearch 已具备初步向量检索功能,若能在大规模向量索引和深度语义检索上加大投入,将迎来更广阔的应用前景。
生态繁荣:能否像 Elasticsearch 那样拥有丰富的插件生态、数据可视化工具,以及监控管理平台,也直接影响国产化替代方案的成熟度。
与大数据组件的深度融合:如与 Spark、Flink 等生态的协同,让 Easysearch 更好地与企业级大数据平台联动,为实时索引与实时分析提供可能。
结语
Elasticsearch 的国产化替代方案是当前行业非常关注的领域。Easysearch 凭借其轻量、高效、易用和内置安全等特性,正成为不少企业关注和尝试的重点对象。随着产品的不断迭代和完善,Easysearch 可能会在分布式搜索和企业数据分析市场上扮演越来越重要的角色,也有望为中国企业提供更具竞争力、更安全合规的搜索服务。
如果你正在寻找一款能够兼顾国内合规要求、部署简易且功能完善的搜索解决方案,Easysearch 值得一试。相信在不断的技术积累与社区互动中,Easysearch 也会以更快的速度迭代与成长,为广大开发者和企业用户提供更优质的搜索体验。
如果你使用 Easysearch 遇到问题,欢迎留言交流。
参考链接
Easysearch 官方部署文档
Elasticsearch 官网
https://infinilabs.cn/docs/latest/easysearch/https://infinilabs.cn/
更多推荐
-
Elasticsearch 使用误区之一——将 Elasticsearch 视为关系数据库!
Elasticsearch 使用误区之二——频繁更新文档
Elasticsearch 使用误区之三——分片设置不合理
Elasticsearch 使用误区之四——不合理的使用 track_total_hits
Elasticsearch 使用误区之五——单次请求获取大量数据
Elasticsearch 使用误区之六——富文本内容写入前不清洗
《一本书讲透 Elasticsearch》读者群的创新之路
更短时间更快习得更多干货!
和全球超2000+ Elastic 爱好者一起精进!
elastic6.cn——ElasticStack进阶助手
抢先一步学习进阶干货!
相关文章:

Elasticsearch 国产化替代方案之一 Easysearch 的介绍与部署指南
一、前言 在国内数字化转型浪潮和 信创 大背景下,“替代进口”成为许多企业级应用所需要面对的重要课题,搜索领域也不例外。 Elasticsearch(简称 ES)作为一款业界领先的全文搜索和分析引擎,虽然功能强大,但…...

Pytorch | 从零构建EfficientNet对CIFAR10进行分类
Pytorch | 从零构建EfficientNet对CIFAR10进行分类 CIFAR10数据集EfficientNet设计理念网络结构性能特点应用领域发展和改进 EfficientNet结构代码详解结构代码代码详解MBConv 类初始化方法前向传播 forward 方法 EfficientNet 类初始化方法前向传播 forward 方法 训练过程和测…...
Python超能力:高级技巧让你的代码飞起来
文章一览 前言一、with1.1 基本用法1.2 示例自定义上下文管理器 二、条件表达式三、列表式推导式与 zip 结合 四、map() 函数(内置函数)map用于数据清洗1. 数据清洗:字母大小写规范2. filter() 函数 五、匿名函数 lambda5.1 lambda的参数&…...

熊军出席ACDU·中国行南京站,详解SQL管理之道
12月21日,2024 ACDU中国行在南京圆满收官,本次活动分为三个篇章——回顾历史、立足当下、展望未来,为线上线下与会观众呈现了一场跨越时空的技术盛宴,吸引了众多业内人士的关注。云和恩墨副总经理熊军出席此次活动并发表了主题演讲…...

FPGA实现MIPI转FPD-Link车载同轴视频传输方案,基于IMX327+FPD953架构,提供工程源码和技术支持
目录 1、前言工程概述免责声明 2、相关方案推荐本博主所有FPGA工程项目-->汇总目录我这里已有的 MIPI 编解码方案 3、本 MIPI CSI-RX IP 介绍4、详细设计方案设计原理框图IMX327 及其配置FPD-Link视频串化-解串方案MIPI CSI RX图像 ISP 处理图像缓存HDMI输出工程源码架构 5、…...

vue3动态绑定图片和使用阿里巴巴矢量图
矢量图 1。加购物车 2. 下载在本地 解压 (把以下文件放进项目文件夹里面) ├── font ├── iconfont.css ├── iconfont.json (font-class用法) ├── iconfont.js (symbol用法) ├─…...

‘vite‘ 不是内部或外部命令,也不是可运行的程序
报错:执行 npm run dev时,提示’vite’ 不是内部或外部命令,也不是可运行的程序 解决:执行 npm install -g vite 报错:导入vite后再次执行npm run dev,报错failed to load config from E:\eclipseWP\test1…...

2024年12月一区SCI-加权平均优化算法Weighted average algorithm-附Matlab免费代码
引言 本期介绍了一种基于加权平均位置概念的元启发式优化算法,称为加权平均优化算法Weighted average algorithm,WAA。该成果于2024年12月最新发表在中JCR1区、 中科院1区 SCI期刊 Knowledge-Based Systems。 在WAA算法中,加权平均位置代表当…...
如何获取 ABAP 内表中的重复项
要识别 ABAP 内表中的重复项,可以结合使用排序和循环。下面的示例展示了如何查找内部表中的重复条目: DATA: BEGIN OF itab OCCURS 0,field1 TYPE i,field2 TYPE c LENGTH 10,END OF itab,wa LIKE LINE OF itab.* Add sample data to internal table it…...
编译笔记:vs 中 正在从以下位置***加载符号 C# 中捕获C/C++抛出的异常
加载符号 解决方法: 进入VS—工具—选项----调试----符号,看右边有个“Microsoft符号服务器”,将前面的勾去掉,(可能还有删除下面的那个缓存)。 参考 C# 中捕获C/C抛出的异常 在需要捕捉破坏性异常的函数…...

ChatGPT与Postman协作完成接口测试(二)
ChatGPT生成的Postman接口测试用例脚本如下所示。 ChatGPT生成的Postman接口测试用例脚本 以下是符合Collection v2.1格式要求的 Postman 测试用例脚本,覆盖了正常注册和密码不匹配两种情况的测试: { "info": { "_postman_id": &qu…...

flask-admin modelview 中重写get_query函数
背景: flask-admin框架中提供的模型视图默认是显示表实体中的所有列表数据,如果想通过某种条件限制初始列表数据,那么久需要重写一些方法才能实现。 材料: 略 制作: 视图源码: def get_query(self):re…...

【python 逆向分析某有道翻译】分析有道翻译公开的密文内容,webpack类型,全程扣代码,最后实现接口调用翻译,仅供学习参考
文章日期:2024.12.24 使用工具:Python,Node.js 逆向类型:webpack类型 本章知识:sign模拟生成,密文的解密(webpack),全程扣代码,仅供学习参考 文章难度:低等(没…...
tensorflow_probability与tensorflow版本依赖关系
参考:Tensorflow Probability 与 TensorFlow 的版本依赖关系_tensorflow与tensorflow-probability对应版本的网址-CSDN博客 tensorflow2.10对应tensorflow_probability0.18.0,安装命令:pip install tensorflow_probability0.18.0 版本对应关…...
构建安全的用户认证系统:PHP实现
构建安全的用户认证系统:PHP实现 用户认证是任何Web应用的重要组成部分,确保只有授权用户才能访问特定资源。构建一个安全的用户认证系统需要考虑多种因素,包括密码存储、会话管理和防止常见gongji。本文将介绍如何使用PHP实现一个安全的用户…...

VMD-SSA-BiLSTM、VMD-BiLSTM、BiLSTM时间序列预测对比
VMD-SSA-BiLSTM、VMD-BiLSTM、BiLSTM时间序列预测对比 目录 VMD-SSA-BiLSTM、VMD-BiLSTM、BiLSTM时间序列预测对比预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.MATLAB实现VMD-SSA-BiLSTM、VMD-BiLSTM、BiLSTM时间序列预测对比; 2.单变量时间序列预测 就是先vmd把变…...
天融信网络架构安全实践
1、医院客户想通过等保2.0三级,推荐哪几款网络安全产品?(至少6个) TopSAg(运维安全审计系统) TopNAC(网络准入系统) TopEDR(终端威胁防御系统) TDSM-SBU(存储备份一体机…...
腾讯云云开发 Copilot具有以下优势
与其他代码生成工具相比,腾讯云云开发 Copilot具有以下优势: 功能特性方面 自然语言处理能力更强:许多代码生成工具仅能实现简单的代码补全或根据特定模板生成代码,而云开发 Copilot可直接通过自然语言生成完整的小程序/web全栈…...

electron-vite【实战系列教程】
创建项目 安装必要的插件 UI 库 element-plus npm install element-plus --save 安装 element-plus 图标 npm install element-plus/icons-vue 安装插件 – 自动注册组件 vs 自动导入框架方法 npm install -D unplugin-vue-components unplugin-auto-import electron.vite.conf…...
【微信小程序】微信小程序中的异步函数是如何实现同步功能的
在微信小程序中,虽然很多 API 都是异步的,但可以通过一些方法来实现类似同步的功能。以下是几种常见的方法: 1. 使用 async/await async/await 是 ES2017 引入的语法糖,它基于 Promise 来实现异步操作的同步化写法。 示例代码 …...

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造,完美适配AGV和无人叉车。同时,集成以太网与语音合成技术,为各类高级系统(如MES、调度系统、库位管理、立库等)提供高效便捷的语音交互体验。 L…...

使用VSCode开发Django指南
使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...
逻辑回归:给不确定性划界的分类大师
想象你是一名医生。面对患者的检查报告(肿瘤大小、血液指标),你需要做出一个**决定性判断**:恶性还是良性?这种“非黑即白”的抉择,正是**逻辑回归(Logistic Regression)** 的战场&a…...
【论文笔记】若干矿井粉尘检测算法概述
总的来说,传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度,通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)
本文把滑坡位移序列拆开、筛优质因子,再用 CNN-BiLSTM-Attention 来动态预测每个子序列,最后重构出总位移,预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵(S…...

【Oracle】分区表
个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...

C++使用 new 来创建动态数组
问题: 不能使用变量定义数组大小 原因: 这是因为数组在内存中是连续存储的,编译器需要在编译阶段就确定数组的大小,以便正确地分配内存空间。如果允许使用变量来定义数组的大小,那么编译器就无法在编译时确定数组的大…...

springboot整合VUE之在线教育管理系统简介
可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生,小白用户,想学习知识的 有点基础,想要通过项…...
A2A JS SDK 完整教程:快速入门指南
目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库ÿ…...

从 GreenPlum 到镜舟数据库:杭银消费金融湖仓一体转型实践
作者:吴岐诗,杭银消费金融大数据应用开发工程师 本文整理自杭银消费金融大数据应用开发工程师在StarRocks Summit Asia 2024的分享 引言:融合数据湖与数仓的创新之路 在数字金融时代,数据已成为金融机构的核心竞争力。杭银消费金…...