跳至主要内容
版本:1.23.6

存儲庫索引器

無需索引器的內置存儲庫代碼搜索

用戶可以在不設置存儲庫索引器的情況下進行存儲庫級別的代碼搜索。 內置代碼搜索基於 git grep 命令,對於小型存儲庫來說快速且高效。 通過設置存儲庫索引器可以實現更好的代碼搜索支持。

設置存儲庫索引器

Gitea 可以通過在您的 app.ini 中啟用此功能來搜索存儲庫文件:

[indexer]
; ...
REPO_INDEXER_ENABLED = true
REPO_INDEXER_PATH = indexers/repos.bleve
MAX_FILE_SIZE = 1048576
REPO_INDEXER_INCLUDE =
REPO_INDEXER_EXCLUDE = resources/bin/**

請記住,索引內容可能會消耗大量系統資源,特別是在首次創建索引或全局更新索引時(例如在升級 Gitea 之後)。

通過大小選擇要索引的文件

MAX_FILE_SIZE 選項將使索引器跳過所有大於指定值的文件。

通過路徑選擇要索引的文件

Gitea 應用來自 gobwas/glob 的 glob 模式匹配來選擇將包含在索引中的文件。

限制文件列表可以防止索引被派生或不相關的文件(例如 lss、sym、map 等)污染,因此搜索結果更相關。它還可以幫助減少索引大小。

REPO_INDEXER_EXCLUDE_VENDORED(默認:true)從索引中排除供應商文件。

REPO_INDEXER_INCLUDE(默認:空)是一個逗號分隔的 glob 模式列表,用於包含在索引中的文件。空列表表示“包含所有文件”。 REPO_INDEXER_EXCLUDE(默認:空)是一個逗號分隔的 glob 模式列表,用於排除索引中的文件。匹配此列表的文件將不會被索引。REPO_INDEXER_EXCLUDE 優先於 REPO_INDEXER_INCLUDE

模式匹配如下:

  • 要匹配所有具有 .txt 擴展名的文件,無論在哪個目錄,請使用 **.txt
  • 要僅匹配存儲庫根級別的所有 .txt 擴展名文件,請使用 *.txt
  • 要匹配 resources/bin 及以下的所有文件,請使用 resources/bin/**
  • 要匹配 resources/bin立即的所有文件,請使用 resources/bin/*
  • 要匹配所有名為 Makefile 的文件,請使用 **Makefile
  • 匹配目錄無效;模式 resources/bin 不會包含/排除該目錄中的文件;resources/bin/** 會。
  • 所有文件和模式都會標準化為小寫,因此 **Makefile**makefile**MAKEFILE 是等效的。