[Go 工具庫] 輕量級彈性搜索引擎 Zinc

一、前言

Zinc 是一個輕量級替代 Elasticsearch 的開源搜索引擎。

Elasticsearch 真的好用,但是 Elasticsearch 安裝和配置也是真的繁瑣,後續的一些維護也有一定成本。另外一個 Elasticsearch 的不足就是服務運行起來需要的計算資源較多,對於普通的用戶來說是有點浪費的。

Zinc,擁有完全兼容 Elasticsearch 的 APIs,同時自帶 UI 用來替代 Elasticsearch 系列的 Kibana。

Zinc 使用 Go 開發,只需要一個二進制包就能直接啓動使用,在安裝和使用都比 Elasticsearch 要簡單很多,同時資源的消耗也比 Elasticsearch 低得多。以下是官方介紹視頻:

1.1 特性

  1. 提供全文索引功能

  2. 用於安裝和運行的單個二進制文件。二進制文件適用於多個平臺的發行版。

  3. 用於查詢用 Vue 編寫的數據的 Web UI

  4. 與用於攝取數據的 elasticsearch API 兼容(單條記錄和批量 API)

  5. 開箱即用的身份驗證

  6. Schema less – 無需預先定義 schema,同一索引中的不同文檔可以有不同的字段。

  7. 存儲在磁盤的索引

  8. 聚合支持

1.2 Roadmap Items

  1. 高可用

  2. 分佈式讀寫

  3. 地理搜索

  4. 內存索引存儲

  5. S3 的索引存儲

、使用****

2.1 命令行安裝

官方的鏡像發佈在 :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

也可以用 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

2.2 運行

在瀏覽器中輸入 http://IP:4080 就能看到登錄界面

用戶管理界面:

搜索界面:

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/APwOxkMe1tJItlOc1y8BZA