# Индексирование

Источник: https://docs.kodik.ru/context/indexing

Kodik строит локальный семантический индекс вашего рабочего пространства. Инструмент `codebase_search` использует этот индекс для поиска кода по смыслу, а не только по точному совпадению текста.

## Как работает индексирование

При запуске Kodik разбивает текстовые файлы рабочего пространства на перекрывающиеся фрагменты (до 80 строк каждый), вычисляет векторные встраивания с помощью API встраиваний и сохраняет результаты в локальной базе данных SQLite в пользовательских данных Kodik для этого рабочего пространства. Когда агент вызывает `codebase_search`, запрос преобразуется в тот же вектор и сопоставляется с сохранёнными встраиваниями.

Индекс хранится **локально** вне папки проекта, поэтому он не появляется в Git и не требует правила в `.gitignore`. Данные сохраняются между сессиями, поэтому при повторном открытии рабочего пространства повторная индексация не требуется.

## Автоматическое обновление

Индексирование начинается автоматически при открытии рабочего пространства, если вы вошли в аккаунт Kodik (встраивания вычисляются через Kodik API). Если рабочее пространство открыто без входа, индексирование запустится сразу после входа в аккаунт — перезапуск не нужен. Kodik отслеживает изменения файлов и обновляет индекс инкрементально, обрабатывая только изменённые файлы.

| Изменение        | Действие                                      |
| ---------------- | --------------------------------------------- |
| Новые файлы      | Автоматически добавляются в индекс            |
| Изменённые файлы | Старые встраивания удаляются, создаются новые |
| Удалённые файлы  | Удаляются из индекса                          |

Частичная синхронизация дебаунсируется, чтобы не мешать редактированию. Изменения `.gitignore` или `.kodikignore` немедленно запускают полную переиндексацию.

Если индексирование прерывается (например, при закрытии IDE), сохранённая контрольная точка позволяет возобновить его с того места, где оно остановилось.

## Что индексируется

По умолчанию Kodik индексирует все текстовые файлы, за исключением:

- файлов, перечисленных в `.kodikignore` или `.gitignore` — см. [Файлы игнорирования](https://docs.kodik.ru/context/ignore-files)
- стандартных директорий сборки и зависимостей (`node_modules`, `dist`, `build`, `.git`, `.kodik` и др.)
- двоичных файлов и медиафайлов (изображений, аудио, видео, архивов, скомпилированных артефактов)
- файлов размером более 512 КБ или пустых файлов

Индекс ограничен 50 000 фрагментами и 32 МБ суммарного текста, что достаточно для большинства репозиториев. Файлы, выходящие за этот бюджет, пропускаются.

## Конфигурация

Проверьте статус индексирования или запустите переиндексацию из **Настройки Kodik → Настройки индексации**. Там же можно:

- приостановить или возобновить автоматическую синхронизацию;
- отключить учёт `.kodikignore` или `.gitignore`;
- очистить индекс.

Пауза (и очистка индекса) действует только на текущее рабочее пространство — остальные проекты продолжают индексироваться как обычно. Если индексирование на паузе, **Синхронизация** возобновляет автоматическую синхронизацию и запускает новое согласование, чтобы ожидающие изменения файлов попали в индекс.

![image29](https://docs.kodik.ru/img/image29.png)

## Приватность и безопасность

Индекс хранится локально на вашем компьютере в пользовательских данных Kodik, а не внутри рабочего пространства. Содержимое файлов используется только для вычисления встраиваний через API; исходный код не сохраняется на серверах Kodik в читаемом виде. Чтобы исключить из индекса чувствительные файлы, добавьте их в [файлы игнорирования](https://docs.kodik.ru/context/ignore-files).
