Skip to content

Zeroplex 生活隨筆

軟體開發、伺服器和生活瑣事

小 縮小字型大小。 中 重設字型大小。 大 放大字型大小。

Meilisearch 建立索引遇到的瓶頸

Posted on 2024 年 2 月 12 日2024 年 2 月 13 日 By 日落 在〈Meilisearch 建立索引遇到的瓶頸〉中尚無留言

Meilisearch 是一個以 Rust 開發的全文搜尋引擎 (full-text search engine),主打簡單好用、搜尋和回應速度都很快,另外預設就支援多國語言,不需要特別調整設定或安裝擴充套件即可使用。

覺得有趣,去年拿來當作 site project 的一部分研究。當索引檔大小漸漸增加,也開始發現一些問題。

觀察了一下運作的狀況:

  • 索引大小約 1 GB 時,使用 1 thread + 1 GB RAM,新增資料約 3 秒
  • 索引大小在 5 GB 時,使用 4 thread + 2 GB RAM,新增資料至少 15 秒起跳

在索引檔大小增加以後,增加 threading 和 RAM 對執行效率並沒有顯著的效果,瓶頸看起來是卡在 disk I/O。

手上 VPS 觀察到的 I/O 最大約 200 MB/s,應該就是極限了:

dstat 觀察到最大的 disk I/O 約 200 MB/s
dstat 觀察到最大的 disk I/O 約 200 MB/s

Meilisearch 並不是不能用,這邊還是簡單列幾個優缺點。

優點:

  • 就一個執行檔而已,不用下參數就可以正常運作
  • 走 RESTful API,curl 就可以操作。因為簡單,所以幾乎這種程式語言已都有 API 可用。
  • document based data,不需要事先定義 field / column (我覺得這也可以算是一個缺點)
  • 隨時調整 searchable / sortable / displayable doument field
  • 內建 dump & snapshot

缺點:

  • 覺得算是一個迭代速度蠻快的專案,所以文件沒有很完整 (或說明不好找)
  • 透過 master key 和 API key 來限制使用、操作,略顯不足
  • 部份覺得蠻重要的功能尚在開發中,例如透過 rank 來排序之類的
  • 查詢功能、查詢結果列表有一些限制,但可以透過其他功能來避免 (known limitations)

Meilisearch 的社群蠻活躍的,歡迎大家參與討論 -> Meilisearch Roadmap

Tags:資訊學習

文章導覽

Previous Post: 自訂等待的動畫示意符號
Next Post: 將檔案複製到 AWS S3 並設定為公開讀取

發佈留言 取消回覆

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


其他

關於我  (About me)

小額贊助

  文章 RSS Feed

  留言 RSS Feed

Apache AWS Bash C/C++ Docker FreeBSD GCP Git Google Java JavaScript Laravel Linux Microsoft MSSQL MySQL Nginx PHP PHPUnit PostgreSQL Python Qt Ubuntu Unix Vim Web Windows WordPress XD 作業系統 分享 好站推薦 專題 攝影 新奇搞笑 新聞 旅遊 生活雜記 程式設計 網路架站 網頁設計 資訊學習 資訊安全 遊戲 音樂


創用 CC 授權條款
本著作係採用創用 CC 姓名標示-相同方式分享 4.0 國際 授權條款授權.