📣 极限科技诚招搜索运维工程师(Elasticsearch/Easysearch)- 全职/北京 👉 : 立即申请加入
INFINI Easysearch 尝鲜 Hands on

INFINI Easysearch 是一个分布式的近实时搜索与分析引擎,核心引擎基于开源的 Apache Lucene。Easysearch 的目标是提供一个自主可控的轻量级的 Elasticsearch 可替代版本,并继续完善和支持更多的企业级功能。与 Elasticsearch 相比,Easysearch 更关注在搜索业务场景的优化和继续保持其产品的简洁与易用性。

Easysearch 支持原生 Elasticsearch 的 DSL 查询语法,确保原业务代码无需调整即可无缝迁移。同时,极限科技还支持 SQL 查询,为熟悉 SQL 的开发人员提供更加便捷的数据分析方式。此外,Easysearch 兼容 Elasticsearch 的 SDK 和现有索引存储格式,支持冷热架构和索引生命周期管理,确保用户能够轻松实现数据的无缝衔接。

安装 #

安装脚本 #

无论是 Linux 还是 Mac 都是这个一键脚本

curl -sSL http://get.infini.cloud | bash -s -- -p easysearch

同时也提供了二进制的安装包:

如果不想整理 JAVA 环境问题,还可以使用这个 https://release.infinilabs.com/easysearch/stable/bundle/

docker 部署 #

官方提供了 Docker Compose 样例,包括三个服务:

  • easysearch-node1
  • easysearch-node2
  • console

以下是详细说明:

版本控制: #

  • version: ‘3’ 表示使用 Docker Compose 文件的第 3 版格式。

服务定义: #

  • easysearch-node1 和 easysearch-node2:

    • 这两个服务使用相同的 Docker 镜像 infinilabs/easysearch:latest 来组成双节点的集群。
    • 容器运行时使用用户和组 ID 602:602。
    • 设置了 ES_JAVA_OPTS 环境变量以配置 Java 虚拟机的内存。
    • ulimits 选项配置了内存锁定和文件描述符的限制,以提升性能。
    • 容器内的配置、数据和日志目录通过卷映射到主机目录中,以便于数据持久化。
    • 服务暴露特定端口,使外部能够访问容器中的服务。
    • 两个节点均加入名为 esnet 的自定义网络中。
  • console:

    • 该服务使用镜像 infinilabs/console:1.26.0-1552(该镜像没有 latest,需要手动把 latest 更改位特定的版本号)。
    • 同样通过卷将数据和日志目录映射到主机。
    • 暴露 9000 端口用于 Web 界面访问。
    • 使用 links 功能链接到 easysearch-node1 和 easysearch-node2,简化容器之间的通信。
    • 设置了时区环境变量 TZ 为 Asia/Shanghai。

网络配置: #

  • esnet 网络使用 bridge 驱动,提供一个隔离的网络环境,配置了特定的子网 172.24.0.0/16,以确保服务之间的网络通信。
version: '3'
  services:
    easysearch-node1:
      user: "602:602"
      image: infinilabs/easysearch:latest
      container_name: easysearch-node1
      hostname: easysearch-node1
      environment:
        - "ES_JAVA_OPTS=-Xms1g -Xmx1g"
      ulimits:
        memlock:
          soft: -1
          hard: -1
        nofile:
          soft: 65536
          hard: 65536
      volumes:
        - $PWD/ezs1/config:/app/easysearch/config
        - $PWD/ezs1/data:/app/easysearch/data
        - $PWD/ezs1/logs:/app/easysearch/logs
      ports:
        - 9201:9200
        - 9301:9300
      networks:
        - esnet
    easysearch-node2:
      user: "602:602"
      image: infinilabs/easysearch:latest
      container_name: easysearch-node2
      hostname: easysearch-node2
      environment:
        - "ES_JAVA_OPTS=-Xms1g -Xmx1g"
      ulimits:
        memlock:
          soft: -1
          hard: -1
        nofile:
          soft: 65536
          hard: 65536
      volumes:
        - $PWD/ezs2/config:/app/easysearch/config
        - $PWD/ezs2/data:/app/easysearch/data
        - $PWD/ezs2/logs:/app/easysearch/logs
      ports:
        - 9202:9200
        - 9302:9300
      networks:
        - esnet
    console:
      image: infinilabs/console:1.26.0-1552
      container_name: console
      hostname: console
      volumes:
        - $PWD/console/data:/data
        - $PWD/console/log:/log
      networks:
        - esnet
      ports:
        - 9000:9000
      links:
        - easysearch-node1:es1
        - easysearch-node2:es2
      environment:
        - TZ=Asia/Shanghai

  networks:
    esnet:
      driver: bridge
      ipam:
        config:
          - subnet: 172.24.0.0/16

尽管在这里官方提供了详细的命令,完全可以使用这个 docker-compose up 来进行替代。其他的脚本解释如下:

init.sh

#!/bin/bash

# 获取当前脚本所在目录的绝对路径

CUR_DIR=$(cd $(dirname $0); pwd)

# 创建必要的目录结构

mkdir -p $CUR_DIR/console/{data,log}
mkdir -p $CUR_DIR/{ezs1,ezs2}/{data,logs}

# 设置目录的拥有者和权限

chown -R 1000:1000 $CUR_DIR/console
chown -R 602:602 $CUR_DIR/{ezs1,ezs2}
chmod -R 0600 $CUR_DIR/{ezs1,ezs2}/config

# 设置 config 目录的子目录权限

find $CUR_DIR/{ezs1,ezs2}/config -type d -print0 | xargs -0 chmod 750

reset.sh

#!/bin/bash

# 获取当前脚本所在目录的绝对路径

CUR_DIR=$(cd $(dirname $0); pwd)

# 定义确认函数
function confirm() {
  display_str=$1
  default_ans=$2
  if [[ $default_ans == 'y/N' ]]; then
     must_match='[yY]'
  else
     must_match='[nN]'
  fi
  read -p"${display_str} [${default_ans}]:" ans
  [[ $ans == $must_match ]]
}

# 提示用户确认删除所有数据
confirm "RISK WARN: Delete all data!!!" 'y/N' && echo || exit

# 删除 console、ezs1 和 ezs2 的数据和日志文件
rm -rvf $CUR_DIR/console/{data,log}/*
rm -rvf $CUR_DIR/{ezs1,ezs2}/{data,logs}/*

start.sh

#!/bin/bash

# 使用 Docker Compose 启动 ezs2 项目中的服务
docker-compose -p ezs2 up

stop.sh

#!/bin/bash

# 使用 Docker Compose 关闭并移除 ezs2 项目中的所有服务

docker-compose -p ezs2 down

在我的电脑中,可以看到成功启动的容器。

https://docs.infinilabs.com/easysearch/main/docs/getting-started/install/docker-compose/

Console 连接 #

设置集群连接参数,比如域名端口,用户名密码。

初始化,这里会新建索引,写一些 sample 数据。

设置后台管理的密码,后期使用这个登录控制台。

检查配置,完成集群关联。

这个是后台管理界面,除了用户名密码之外,也支持单点登录:

跨引擎、跨版本、跨集群 独一份!

使用自带的面板进行查看节点数量:

同时也支持 REST 风格的 API 来进行查询。

接下来使用 Console 连接 Amazon 的 OpenSearch:

同样是输入集群的 URL,用户名和密码。

然后可以拿到集群的信息,比如地址,版本号,集群状态,节点数量。

最后看到连接成功的信息。

我们可以在集群管理中看到 Easysearch 的集群和我们刚刚添加的 OpenSearch 集群。

是否开源?目前还没有开放源代码。

作者:韩旭,亚马逊云技术支持,亚马逊云科技技领云博主,目前专注于云计算开发和大数据领域。
原文:https://blog.csdn.net/weixin_38781498/article/details/140077785

关于 Easysearch 有奖征文活动 #

黑神话悟空

无论你是 Easysearch 的老用户,还是第一次听说这个名字,只要你对 INFINI Labs 旗下的 Easysearch 产品感兴趣,或者是希望了解 Easysearch,都可以参加这次活动。

详情查看: Easysearch 征文活动

标签
Easysearch x
产品更新 x
performance x
2026 x
开源 x
赞助 x
开源生态 x
社区 x
Coco AI x
二等奖 x
兴智杯 x
人工智能 x
赛事 x
低空经济 x
商业化 x
数据分析 x
金猿奖 x
国产化 x
搜索引擎 x
技术卓越奖 x
创新产品奖 x
IT168 x
APM x
Skywalking x
Easy-Es x
Coco x
AI x
GitLab x
代码审核 x
石油石化 x
Gitee x
投票 x
Meilisearch x
Rust x
轻量级 x
搜索百科 x
Docker x
Docker Compose x
Easyserach x
Console x
DevOps x
Elasticsearch x
国产替代 x
backup x
snapshot x
CCR x
Gateway x
esdump x
source_reuse x
ignore_above x
OpenSearch x
AWS x
Lucene x
Solr x
Easyearch x
发明专利 x
数据分区 x
国际专利 x
一等奖 x
人工智能应用创新大赛 x
bulk x
embedding x
OpenAI x
IK x
TDBC x
2025 x
信通院 x
可信数据库大会 x
搜索型数据库 x
中国数据库产业图谱 x
上海开源创新菁英荟 x
开源创新新星企业 x
Workshop x
AI 搜索 x
智能助手 x
Automation x
Logstash x
MongoDB x
开源中国 x
直播 x
merge x
Elasticsearch 9 x
GitCode x
AI搜索 x
Cloud x
rollup x
Kubernetes x
Operator x
Arm64 x
Snapshot x
S3 x
Grafana x
Opensearch x
Nginx x
直播活动 x
搜索客社区 x
Meetup x
ES x
企业搜索 x
DeepSeek x
RAG x
certificate x
windows x
Rollup x
TopN x
Filebeat x
Ubuntu x
请求限速 x
INFINI Console x
指标 x
Kibana x
多集群 x
client x
Spring Boot x
ECE x
ES Bulk x
vector database x
Postgres x
可搜索快照 x
SDK x
官网 x
Web 开发 x
Next.js x
React x
Three.js x
Metrics x
Helm x
filter x
querycache x
practice x
Agent x
localStorage x
响应式 x
时间组件 x
时区组件 x
极限科技 x
三周年 x
周年庆 x
国家高新技术企业 x
校园招聘 x
湖北工业大学 x
Tauri x
Web 开发人员 x
桌面应用开发 x
桌面端 x
Electron x
Pizza x
认证培训 x
报名 x
Scrapy x
爬虫 x
Rust开发者大会 x
docsearch x
文档搜索 x
Easyseach x
有奖征文 x
黑神话悟空 x
EKS x
征文系列 x
跨集群搜索 x
科技中小企业 x
白皮书 x
Python SDK x
数据库产业图谱 x
超大规模 x
分布式集群 x
写入限流 x
2024可信数据库发展大会 x
创新型中小企业 x
搜索数据库 x
正排索引 x
免费许可证 x
K8S x
DTC2024 x
实时搜索 x
ES国产化 x
Redis x
OOM x
测试 x
内存 x
趋势 x
AI绘画 x
Stable Diffusion x
Diffusion x
Model x
GAN x
语义搜索 x
知识图 x
向量数据库 x
中国信通院 x
星河(Galaxy) x
标杆案例 x
鲲鹏 x
鲲鹏技术认证 x
客户端 x
日志平台 x
LDAP x
Loadgen x
中国一汽 x
国内数据库 x
墨天轮 x
监控系统 x
集成测试 x
ZSTD x
Helm Charts x
国产适配 x
兆芯 x
Linux x
LoongArch x
信创适配 x
二维拆分算法 x
中国移动云 x
Vault x
加密 x
安全工具 x
kNN x
向量检索 x
图片搜索 x
Alerting x
SQL x
搜索 x
Embedding x
可信数据库 x
统信 x
海光 x
龙芯 x
restore x
Arm x
大数据企业证书 x
移动云大会 x
信通院产品评测 x
国内首家 x
数据可视化 x
北京软协 x
第十届理事会会员单位 x
Apache Arrow x
宣传片 x
大会分享 x
多集群管理 x
无缝数据迁移 x
Loadrun x
INFINI Gateway x
log4j x