nixos search
1.0.0
該儲存庫包含search.nixos.org
的腳本和 Web 應用程式。
最初的想法是替換 NixOS 包和選項搜索,後者獲取包含所有包(或選項)的一個 JSON 檔案。這種方法的優點是設定簡單,但當套件數量越來越大時,它的問題就開始顯現出來。我確信我們可以進一步優化它,但是如果後面有一些資料庫,我們能做什麼,我們會忍不住嘗試。
對於後端,我們使用 Elasticsearch 實例,該實例由 bonsai.io 贊助。在前端我們使用 Elm。
我們要解決的用例是訪客想要查看某個包是否存在或查找某個包的詳細資訊。
如果可能的話,使用者希望收斂到單一結果。新增到搜尋查詢中的字元越多,搜尋範圍就越窄,我們應該顯示的結果越少。
搜尋結果的排名也非常重要。這會將更相關的搜尋結果帶到頂部,因為很多時候很難產生僅輸出一個結果項目的搜尋查詢。
不太重要,但提供更好的使用者體驗。是編寫更好的搜尋查詢的建議。建議功能應該引導使用者編寫更好的查詢,從而產生更好的結果。
要開始開發,請打開終端機並運行:
env --chdir=frontend nix develop -c yarn dev
您可以將瀏覽器指向http://localhost:3000
並開始開發。對原始檔案 ( ./frontend/src
) 的任何變更都會觸發應用程式的熱重新載入。
main
分支時都會觸發 GitHub Action。yarn prod
指令建立 Web 應用程式的生產版本。./dist
中)部署到 Netlify。要將您自己的薄片添加到搜尋索引,請編輯 ./flakes/manual.toml。
可能的類型有github
、 gitlab
、 sourcehut
和git
(這是任何類型的 git 儲存庫的後備,但目前需要手動設定修訂金鑰)。
要測試您的 flake 是否與 nix flake-info 相容,您可以嘗試對其執行flake-info
$ nix run github:nixos/nixos-search#flake-info -- flake <your flake handle>