全文索引搜索引擎Zinc

在这里插入图片描述

什么是 Zinc ?

ZincSearch 是一个搜索引擎,可用于文本数据、日志、指标、事件等。它允许您进行全文搜索,包括将服务器日志发送到 ZincSearch、推送您的应用程序数据、提供全文搜索或在您的应用程序中构建搜索栏。具备与 Elasticsearch API 的兼容性,因此您可以轻松迁移应用程序。

之前老苏折腾 Nettu Meet 时用到过 Elasticsearch7.1.0 版,性能消耗还好,折腾 Trudesk 时用到过 Elasticsearch8.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_USERZincSearch 的第一个管理员用户
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_USERZINC_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/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是一个简单的在ZINC中筛选好结构的Python代码示例: ```python import requests # 定义ZINC API的基本URL ZINC_API_BASE_URL = 'https://zinc.docking.org/api/v1' # 定义筛选条件 FILTER_CONDITIONS = { 'property': 'mw', 'min': 200, 'max': 500, 'condition': 'range' } # 定义其他参数 NUM_RESULTS = 100 OUTPUT_FORMAT = 'sdf' # 构造API请求URL url = f'{ZINC_API_BASE_URL}/search?result_format={OUTPUT_FORMAT}&count={NUM_RESULTS}&{FILTER_CONDITIONS}' # 发送API请求并获取结果 response = requests.get(url) # 处理结果 if response.status_code == 200: # 成功获取结果,可以通过response.text获取结果的字符串形式 print(response.text) else: # 获取结果失败,可以通过response.status_code和response.text查看具体原因 print(f'Request failed with status code {response.status_code}: {response.text}') ``` 说明: - 首先定义ZINC API的基本URL为`https://zinc.docking.org/api/v1`。 - 然后定义了一个字典`FILTER_CONDITIONS`,其中包含了筛选条件,包括分子量(mw)在200到500之间。 - 然后定义了其他请求参数,包括要返回的结果数量(NUM_RESULTS)和输出格式(OUTPUT_FORMAT)。 - 构造API请求URL,包括基本URL、结果格式、数量和筛选条件。 - 发送API请求并获取结果,如果请求成功则会返回状态码200和结果字符串,否则返回失败原因。 - 对于获取成功的结果,可以对其进行解析和处理,例如使用RDKit进行分子结构的可视化等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杨浦老苏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值