想要手邊有一個方便架設的搜尋引擎服務,常聽說 Elasticsearch 吃資源又設定複雜,就來研究一下其他能夠替用的服務。
這次比較的選項有兩個, Milisearch 跟 Typesense,最後選擇 Typesense,筆記個理由。
Milisearch:速度快,架設容易且原生支援多語言偵測,但是現況 Milisearch 架構有些問題挺勸退的:
看起來目前適合小型且資料量不是非常巨大的專案。
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。