v16: enable zoekt code search #76

Stängd
öppnade 2026-07-17 11:52:21 +00:00 av supernaut · 0 kommentarer
Ägare

Tier 1 v16 follow-up (gated on #73 landing). v16 adds Zoekt as a first-class code-search engine (PR 8827): [indexer] REPO_INDEXER_TYPE = zoekt. Verified embedded — an in-process Go library, no sidecar/extra container; Forgejo manages index shards in a directory (REPO_INDEXER_PATH, 512 MB max shard).

Today we run without a repo indexer (code search limited to single-repo). Enabling Zoekt is an app.ini.j2 + disk change only:

  • Size the shard directory on the data volume — shards live at /data/gitea/indexers/repos.zoekt on the forgejo-data volume; current corpus fits comfortably, generic disk alerts cover it.
  • Set REPO_INDEXER_ENABLED = true, REPO_INDEXER_TYPE = zoekt, REPO_INDEXER_PATH in app.ini.j2; apply. — applied to prod 2026-07-18, forgejo restarted, shards built.
  • Compare search quality/latency vs bleve — deferred; zoekt kept (works, real hits). Revisit only if the explore.Code panic (#113) proves worse than the bleve alternative.
  • Watch index-build CPU/IO on first run — verified; whole-corpus index built without issue.

Applied via PR #97. Known issue: some queries 500 (upstream Forgejo explore.Code panic) — tracked in #113. Product angle: instance-wide code search is a visible paying-user feature — worth a site/docs mention once #113 is resolved.

**Tier 1 v16 follow-up** (gated on #73 landing). v16 adds Zoekt as a first-class code-search engine (PR 8827): `[indexer] REPO_INDEXER_TYPE = zoekt`. Verified **embedded** — an in-process Go library, no sidecar/extra container; Forgejo manages index shards in a directory (`REPO_INDEXER_PATH`, 512 MB max shard). Today we run without a repo indexer (code search limited to single-repo). Enabling Zoekt is an `app.ini.j2` + disk change only: - [x] Size the shard directory on the data volume — shards live at `/data/gitea/indexers/repos.zoekt` on the forgejo-data volume; current corpus fits comfortably, generic disk alerts cover it. - [x] Set `REPO_INDEXER_ENABLED = true`, `REPO_INDEXER_TYPE = zoekt`, `REPO_INDEXER_PATH` in `app.ini.j2`; apply. — applied to prod 2026-07-18, forgejo restarted, shards built. - [ ] Compare search quality/latency vs `bleve` — deferred; zoekt kept (works, real hits). Revisit only if the explore.Code panic (#113) proves worse than the bleve alternative. - [x] Watch index-build CPU/IO on first run — verified; whole-corpus index built without issue. Applied via PR #97. **Known issue:** some queries 500 (upstream Forgejo `explore.Code` panic) — tracked in #113. Product angle: instance-wide code search is a visible paying-user feature — worth a site/docs mention once #113 is resolved.
Logga in för att delta i denna konversation.
Ingen milstolpe
Inga tilldelade
1 deltagare
Notiser
Förfallodatum
Förfallodatumet är ogiltigt eller utanför gränserna. Använd formatet "åååå-mm-dd".

Inget förfallodatum satt.

Beroenden

Inga beroenden satta

Referens
bitborg/bitborg-infra#76
Ingen beskrivning angiven.