什么是 Zinc ?
ZincSearch
是一个搜索引擎,可用于文本数据、日志、指标、事件等。它允许您进行全文搜索,包括将服务器日志发送到ZincSearch
、推送您的应用程序数据、提供全文搜索或在您的应用程序中构建搜索栏。具备与Elasticsearch API
的兼容性,因此您可以轻松迁移应用程序。
之前老苏折腾 Nettu Meet
时用到过 Elasticsearch
的7.1.0
版,性能消耗还好,折腾 Trudesk
时用到过 Elasticsearch
的 8.0.0
版,基本上直接一启动就把我的小机器搞挂了
虽然 Elasticsearch
是一个非常好的产品,但它需要大量的资源,所以老苏找到了 Zinc
,它是 Elasticsearch
的一个轻量级替代方案,运行时只需要使用最少的资源,Zinc
使用 Bluge
作为底层索引库,采用 Go
语言编写,而 Elasticsearch
则是 Java
语言编写的
和 MeiliSearch
一样,似乎单独安装也并没有什么实际的用途 😂
命令行安装
官方的镜像发布在 :https://gallery.ecr.aws/zinclabs/zinc
如果你熟悉命令行,可能用 docker cli
更快捷
# 新建文件夹 zinc 和 子目录
mkdir -p /volume2/docker/zinc/data
# 进入 zinc 目录
cd /volume2/docker/zinc
# 修改目录权限
chmod a+rwx ./data
# 运行容器
docker run -d \
--restart unless-stopped \
--name zinc \
-p 4080:4080 \
-v $(pwd)/data:/data \
-e ZINC_DATA_PATH="/data" \
-e ZINC_FIRST_ADMIN_USER=admin \
-e ZINC_FIRST_ADMIN_PASSWORD=Complexpass#123 \
public.ecr.aws/zinclabs/zinc:0.3.6
可变 | 值 |
---|---|
ZINC_DATA_PATH | 指定缺省的 data 文件夹 |
ZINC_FIRST_ADMIN_USER | ZincSearch 的第一个管理员用户 |
ZINC_FIRST_ADMIN_PASSWORD | 第一个管理员用户的密码 |
更多的环境变量请查阅官方文档:https://docs.zinc.dev/environment-variables/
也可以用 docker-compose
安装,将下面的内容保存为 docker-compose.yml
文件
version: '3'
services:
zinc:
image: public.ecr.aws/zinclabs/zinc:0.3.6
container_name: zinc
restart: unless-stopped
ports:
- 4080:4080
volumes:
- ./data:/data
environment:
- ZINC_DATA_PATH="/data"
- ZINC_FIRST_ADMIN_USER=admin
- ZINC_FIRST_ADMIN_PASSWORD=Complexpass#123
然后执行下面的命令
# 新建文件夹 zinc 和 子目录
mkdir -p /volume2/docker/zinc/data
# 进入 zinc 目录
cd /volume2/docker/zinc
# 修改目录权限
chmod a+rwx ./data
# 将 docker-compose.yml 放入当前目录
# 一键启动
docker-compose up -d
运行
在浏览器中输入 http://群晖IP:4080
就能看到登录界面
用前面设置的 ZINC_FIRST_ADMIN_USER
和 ZINC_FIRST_ADMIN_PASSWORD
登录进入主界面
演示数据
在 SSH
客户端依次执行下面的命令
# 下载文件
curl -L https://github.com/zinclabs/zinc/releases/download/v0.1.1/olympics.ndjson.gz -o olympics.ndjson.gz
# 解压文件
gzip -d olympics.ndjson.gz
# 加载示例数据
curl http://192.168.0.197:4080/api/_bulk -i -u admin:Complexpass#123 --data-binary "@olympics.ndjson"
在 索引
中能找到刚刚导入的 olympics
在搜索
中 选择索引
,勾选要查询的字段,并输入关键词就可以完成搜索了
参考文档
zinclabs/zinc: ZincSearch (Classic). A lightweight alternative to elasticsearch that requires minimal resources, written in Go.
地址:https://github.com/zinclabs/zinc
ZincSearch - A modern search engine
地址:https://zinc.dev/
ZincSearch
地址:https://docs.zinc.dev/
Zinc - A lightweight alternative to elasticsearch in Go : selfhosted
地址:https://www.reddit.com/r/selfhosted/comments/r7y585/zinc_a_lightweight_alternative_to_elasticsearch/