Индексация файлов репозитория#

SourceControl может осуществлять поиск по файлам репозитория с учетом настроек, заданных в 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/**

Обратите внимание
Индексирование файлов может отнимать много ресурсов, особенно когда индекс создается впервые или глобально обновляется (например, после обновления SourceControl).

Выбор файлов для индексации по размеру#

Опция MAX_FILE_SIZE позволяет не индексировать файлы больше указанного значения.

Выбор файлов для индексирования по пути#

Для определения индексируемых файлов SourceControl применяет сопоставление шаблонов glob-файлов из gobwas/glob библиотеки.

Ограничение списка индексируемых файлов предотвращает «загрязнение» найденными/нерелевантными файлами, так что результаты поиска становятся более точными. Также это уменьшает размер индекса.

REPO_INDEXER_INCLUDE (по умолчанию: пусто) — это список glob-шаблонов в формате CSV, которые нужно индексировать. Пустое значение параметра означает индексирование всех файлов.

REPO_INDEXER_EXCLUDE (по умолчанию: пусто) — это список glob-шаблонов в формате CSV, которые не нужно индексировать. REPO_INDEXER_EXCLUDE имеет приоритет над REPO_INDEXER_INCLUDE.

REPO_INDEXER_EXCLUDE_VENDORED (по умолчанию: true) исключает индексирование файлов сторонних приложений (имеются в виду вендорские решения, использующиеся программами, которые пользователь хранит в репозитории).

Сопоставление шаблонов происходит следующим образом:

  • Для сопоставления всех файлов с расширением .txt вне зависимости от каталога используйте **.txt.

  • Для сопоставления всех файлов с расширением .txt только на уровне корня репозитория используйте *.txt.

  • Для сопоставления всех файлов внутри resources/bin и ниже используйте resources/bin/**.

  • Для сопоставления всех файлов сразу внутри resources/bin используйте resources/bin/*.

  • Для сопоставления всех файлов под названием Makefile используйте **Makefile.

  • Сопоставление каталога безрезультатно; шаблон resources/bin не будет включать/исключать файлы внутри этой директории; используйте для этого resources/bin/**.

  • Все файлы и шаблоны нормализованы к нижнему регистру, поэтому значения **Makefile, **makefile и **MAKEFILE равны.