Elasticsearch 国产化替代方案之一 Easysearch 的介绍与部署指南

news2024/12/28 16:43:59

一、前言

在国内数字化转型浪潮和 信创 大背景下,“替代进口”成为许多企业级应用所需要面对的重要课题,搜索领域也不例外。

Elasticsearch(简称 ES)作为一款业界领先的全文搜索和分析引擎,虽然功能强大,但在国内应用时会遇到诸如使用成本高、关键技术和版本开放策略变动大、安全合规担忧等问题。于是,“Elasticsearch 的国产化替代方案” 成了无数开发者和企业 IT 部门共同关注的热点。

读者留言:有 Elasticsearch 国产化替代品吗?现在国产化不让用 ES 了......

在诸多替代方案中,Easysearch 的出现令人眼前一亮。它不仅兼具 全文检索向量检索、地理位置信息查询、聚合分析 等核心功能,还可直接平滑替换 Elasticsearch,并提供更加完善的企业级能力,让人对其未来应用前景充满期待。

接下来,本文将对 Easysearch 做一次深度解读,并以 CentOS 7 环境为例,分享一份简洁的部署指南。

二、Easysearch 概述

2.1 产品定位

Easysearch 是由 INFINI Labs 提供的分布式搜索型数据库,旨在满足企业在海量非结构化数据检索、全文检索向量检索、地理位置信息查询、组合索引、多语种支持、聚合分析等多种场景的需求。

b2dbbc1b271082572eeb65a02df6e704.png

同时,Easysearch 也致力于打造开箱即用、极致易用的近实时搜索体验。

2.2 主要特性

  1. 轻量易用

  • 整个安装包不到 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 客户端卡死(如下图所示),建议参考我的文档步骤来。

87421b9ead8008fd56d3c47f30cb113a.png


  1. 解压到指定目录,如 /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 目录下找到相应的初始化脚本。

c39cb2c972052f8a9031465ed3204609.png

在执行脚本前,请先检查以下注意事项:

  1. 脚本权限(默认就可以):确认当前用户或使用 root 用户进行操作,确保对初始化脚本有执行权限。

  2. 环境变量:建议在脚本中或系统环境中配置好 JAVA_HOME 等必要环境变量(前提)。

执行脚本的效果包括:

  • 自动生成默认密码或密钥;

  • 可以根据业务需求修改服务端口、安全策略或适配配置。

  • 安装N多插件。

86cbc40e9e06d46e29af47b4717f4b90.png

cd /opt/easysearch && bin/initialize.sh

根据终端提示操作,生成初始密码或进行简单配置修改。

生成的密码文件在 logs 路径下(实话说,我不大习惯,自己找了 1 个多小时才找到):


  • 用户名amdin(与 Elasticsearch 不同)

  • 密码:是 admin 用户名之后的哈希值密码。

8fac506168bbe15656fe353735fdecbb.png


3.3 启动服务

初始化完成后,理论上即可启动 Easysearch

但是我是云服务器,要外网访问,所以要改默认 IP 为 0.0.0.0。改动如下:

e900b5ba512faa6cdc0f0800a1b3af1b.png

bin/easysearch -d

执行成功后,检查进程是否正常运行,以及确认日志中无明显报错。若一切顺利,说明 Easysearch 已经在你的 CentOS 7 服务器上顺利部署。

验证成功的标志如下

检查进程是否存在

ps -ef | grep easysearch

2dff612defa549f23b6f01603912e303.png

检查端口是否存在

netstat -natpl | grep 9200

369d93e5179ed63104a58ca85c7d1f3f.png

curl 访问验证成功

5b126a4a707514895941fb796f26d8fe.png

浏览器 Head 插件访问成功

a403b6a545cf35d5caaaa69087b67f92.png

cb4f77e822154f9c414886e52faa827c.png

小贴士:如果需要配置开机自启动或以服务的方式运行,可将启动脚本添加到系统服务配置中,或在系统守护进程中进行相应设置。
具体参见官方文档即可。


四、Easysearch 的更多思考及建议

4.1 产品价值

Easysearch 作为一款核心搜索型数据库,能够为企业提供快速精准的搜索、智能分析能力,并以更低的资源消耗和更少的运维复杂度带来灵活稳定的使用体验。在对外或内部系统中,Easysearch 都有潜力帮助企业减少对国外商业组件的依赖,提升自主可控能力。

4.2 核心竞争力

  • 社区与技术支持国产化软件要想被大规模认可,离不开活跃的社区生态和可靠的技术支持。Easysearch 若能持续完善文档、工具链以及开源社区建设,将在市场上形成良性循环。

  • 企业级扩展:在分布式协同、高可用、数据可视化集成、跨域数据搜索等领域进一步做深做实,为用户提供更具竞争力的解决方案。

4.3 未来发展方向

  • 向量搜索能力:在越来越多的 NLP、语义检索、推荐场景中,向量搜索变成搜索引擎的核心竞争力之一。Easysearch 已具备初步向量检索功能,若能在大规模向量索引和深度语义检索上加大投入,将迎来更广阔的应用前景。

  • 生态繁荣:能否像 Elasticsearch 那样拥有丰富的插件生态、数据可视化工具,以及监控管理平台,也直接影响国产化替代方案的成熟度。

  • 与大数据组件的深度融合:如与 SparkFlink 等生态的协同,让 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》读者群的创新之路

8208a944672d83dbbf1b6e176cdc582e.png

更短时间更快习得更多干货!

和全球2000+ Elastic 爱好者一起精进!

elastic6.cn——ElasticStack进阶助手

fb78005170a378cbf45b99463cb7f507.gif

抢先一步学习进阶干货!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2267017.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Ubuntu 24.04.1 LTS 配置静态固定IP地址

查看网络配置信息 ip addr使用该命令查看网卡名字,一般是ens33或者ens32 修改配置文件 打开 /etc/netplan/下面的yaml配置文件 根据自己的需要配置 network:ethernets:ens33: # 配置的网卡的名称addresses: [192.168.23.140/24] # 配置的静态ip地址和掩码d…

Deep Deterministic Policy Gradient (DDPG)算法

代码 import torch import torch.nn as nn import torch.optim as optim import numpy as np import gym import random from collections import deque# 定义 Actor 网络 class Actor(nn.Module):def __init__(self, state_dim, action_dim, max_action):super(Actor, self).…

C++ OCR 文字识别

一.引言 文字识别,也称为光学字符识别(Optical Character Recognition, OCR),是一种将不同形式的文档(如扫描的纸质文档、PDF文件或数字相机拍摄的图片)中的文字转换成可编辑和可搜索的数据的技术。随着技…

【解决报错】AttributeError: ‘NoneType‘ object has no attribute ‘group‘

学习爬虫时,遇到如下报错: 报错原因: 正则表达式的 search 或 finditer 方法没有找到任何匹配项,可能是换行符处理不当等。 解决方法如下: 在正则表达式末尾加上re.S即可,re.S是一个编译标志&#xff0c…

JVM实战—3.JVM垃圾回收的算法和全流程

大纲 1.JVM内存中的对象何时会被垃圾回收 2.JVM中的垃圾回收算法及各算法的优劣 3.新生代和老年代的垃圾回收算法 4.避免本应进入S区的对象直接升入老年代 5.Stop the World问题分析 6.JVM垃圾回收的原理核心流程 7.问题汇总 1.JVM内存中的对象何时会被垃圾回收 (1)什么…

基于SpringBoot在线音乐系统平台功能实现十八

一、前言介绍: 1.1 项目摘要 随着互联网技术的迅猛发展和普及,人们对音乐的获取和欣赏方式发生了巨大改变。传统的音乐播放方式,如CD、磁带或本地下载的音乐文件,已经不能满足用户日益增长的需求。用户更希望通过网络直接获取各…

RouYi-Vue框架,环境搭建以及使用

使用若以框架需要配置node.js,如果不了解可以去看node.js安装,uni-app的配置使用_uniapp使用nodejs类库-CSDN博客 安装若依 首先是去若以官网下载自己所需要的框架类型 RuoYi-Vue: 🎉 基于SpringBoot,Spring Security&#xff…

XL系列433芯片、2.4G收发芯片 通讯对码说明

XL系列433芯片对码说明: 发射芯片 XL4456 通过数据脚接收高低电平然后经过调制将波形发出,而接收芯片 XL520 通过接收波形后进行解调,数据脚输出高低电平。至于具体的通信协议,需要用户自定义,一般而言,使…

蓝牙BLE开发——解决iOS设备获取MAC方式

解决iOS设备获取MAC方式 uniapp 解决 iOS 获取 MAC地址,在Android、iOS不同端中互通,根据MAC 地址处理相关的业务场景; 文章目录 解决iOS设备获取MAC方式监听寻找到新设备的事件BLE工具效果图APP监听设备返回数据解决方式ArrayBuffer转16进制…

期权懂|如何计算期权卖方平仓后的盈利?

锦鲤三三每日分享期权知识,帮助期权新手及时有效地掌握即市趋势与新资讯! 如何计算期权卖方平仓后的盈利? 期权卖方平仓后的盈利计算涉及多个因素,包括期权的交易价格、平仓价格以及权利金的变动等。 交易价格:期权卖…

QT:一个TCP客户端自动连接的测试模型

版本 1:没有取消按钮 测试效果: 缺陷: 无法手动停止 测试代码 CMakeLists.txt cmake_minimum_required(VERSION 3.19) project(AutoConnect LANGUAGES CXX)find_package(Qt6 6.5 REQUIRED COMPONENTS Core Widgets Network)qt_standard_project_setup(…

uniapp中wx.getFuzzyLocation报错如何解决

一、用wx.getLocation接口审核不通过 用uniapp开发小程序时难免需要获取当前地理位置。 代码如下: uni.getLocation({type: wgs84,success: function (res) {console.log(当前位置的经度: res.longitude);console.log(当前位置的纬度: r…

解决Ubuntu下无法装载 Windows D盘的问题

电脑安装了 Windows 和 Ubuntu 24.04 后,在Ubuntu系统上装载 D盘,发现无法装载错误如下: Error mounting /dev/nvme0n1p4 at /media/jackeysong/Data: wrong fs type, bad option, bad superblock on /dev/nvme0n1p4, missing codepage or h…

硬件设计-高速电路的过孔

目录 摘要 : 过孔的机械特性: 过孔直径: 过孔焊盘尺寸 摘要 : 过孔这个词指得是印刷电路板( PCB )上的孔。过孔可以用做焊接插装器件的焊( Through hole) ,也可用做连接层间走…

mysql索引的理解

1、索引是什么? 索引:简单理解就是我们字典的目录,一个索引可以找得到多个记录。 作用加快我们数据库的查询速度。索引本身较大,往往存储在磁盘的文件里。可能存储在单独的索引文件中,也可能和数据一起存储在数据文件…

【WRF模拟】如何得到更佳的WRF模拟效果?

【WRF模拟】如何得到更佳的WRF模拟效果? 模型配置(The Model Configuration)1.1 模拟区域domain设置1.2 分辨率Resolution (horizontal and vertical)案例:The Derecho of 29-30 June 2012 1.3 初始化和spin-up预热过程案例1-有无…

IOS safari 播放 mp4 遇到的坎儿

起因 事情的起因是调试 IOS 手机下播放服务器接口返回的 mp4 文件流失败。对于没调试过移动端和 Safari 的我来说着实费了些功夫,网上和AI也没有讲明白。好在最终大概理清楚了,在这里整理出来供有缘人参考。 问题 因为直接用 IOS 手机的浏览器打开页面…

单片机+人体红外感应的防盗系统设计(仿真+源码+PCB文件+报告)

资料下载地址:单片机人体红外感应的防盗系统设计(仿真源码PCB文件报告) 1、功能介绍 (1)该设计包括硬件和软件设计两个部分。 (2)本红外线防盗报警系统由热释电红外传感器、报警器、单片机控制电路、LED控制电路及相关的控制管理软件组成。用户终端完成信息采集、处…

网络攻防实践

1. 学习总结 黛蛇蠕虫案例: 原理:利用系统漏洞,并集成攻击代码。其中,通过蜜罐技术并进行数据分析所获取的攻击场景如下: 外部感染源攻陷蜜罐主机 执行Shellcode后获取主机权限后连接控制命令服务器,获取F…

寒假准备找实习复习java基础-day1

CMD常用命令: java跨平台原理: JRE和JVM Java基本数据类型