iT邦幫忙

2024 iThome 鐵人賽

DAY 15
0

想要手邊有一個方便架設的搜尋引擎服務,常聽說 Elasticsearch 吃資源又設定複雜,就來研究一下其他能夠替用的服務。

這次比較的選項有兩個, Milisearch 跟 Typesense,最後選擇 Typesense,筆記個理由。

  • Milisearch:速度快,架設容易且原生支援多語言偵測,但是現況 Milisearch 架構有些問題挺勸退的:

    • 搜尋字串不能超過十個獨立字串
    • 本身不支援 Clustering,要在多個 Instance 間同步索引的話貌似只能用一些暴力法。

    看起來目前適合小型且資料量不是非常巨大的專案。

Typesence 目前還沒看到特別明顯的缺點,就是輕量且快速,剩下就等使用看看才知道了,

一樣用 Docker compose 來起服務,順便先綁到先前建的 network 上。

# docker-compose.yml
services:
  typesense:
    image: typesense/typesense:27.1
    # restart: on-failure
    ports:
      - 8108:8108
    volumes:
      - ./typesense-data:/data
    networks:
      - awesome-ironman 
    env_file:
      - .env
networks:
  awesome-ironman:
    name: awesome-ironman
    external: true
# .env
# data-dir
TYPESENSE_DATA_DIR='/data'
# api-key 
TYPESENSE_API_KEY='xyz'
# enable-cors
TYPESENSE_ENABLE_CORS='true'

伺服器設定的參數一般是在啟動時以指令參數的方式添加,像 --data-dir=/data ,要改成用環境變數的話就是轉蛇型大寫前面加上 TYPESENSE_

Typesense 本身沒有預設的前端畫面,要確認有沒有啟動成功的話先用指令確認。

curl http://localhost:8108/health

預期回傳:

{"ok":true}

要再來看看怎麼建一個前端來使用 Typesense。


上一篇
Directus 自訂選項
下一篇
Typesense 新建索引資料
系列文
Awesome self hosted 30天30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言