Search Strategy

How Gitlas knowledge stays findable — from plain grep to semantic search to graph-based discovery.

Principles

  • No lock-in — every phase builds on the previous one; you can stop anywhere.
  • Local-first — no cloud dependency at any phase.
  • Progressive — start with zero extra infra, add capability as needed.

Phase 0 — Built-in (no extra services)

LayerToolWhat it does
Published siteQuartz FlexSearchFull-text keyword search over the static site
AI agentgrep / ripgrepRegex search across Markdown files
HumanFile treeDirect filesystem navigation

Cost: zero. Works out of the box.

Limitation: keyword-only, no semantic understanding, no cross-file relationships beyond what the file tree shows.


Add local embedding-based search for the AI agent. All candidates share the same pattern: Ollama embeddings + vector store + MCP server.

github.com/itkoren/sqmd

PropertyDetail
BackendLanceDB (embedded, no separate service)
Chunkingremark AST — section-aware, respects Markdown heading structure
SearchHybrid (BM25 + vector + RRF fusion)
MCPBuilt-in
EmbeddingsTransformers.js ONNX (default) or Ollama
IncrementalSHA-256 fingerprinting, filesystem watcher

Why: No external DB, natively understands Markdown AST, single binary-style dependency.

Option B: Mnemos

github.com/Tanush1912/mnemos-mcp

PropertyDetail
BackendPostgreSQL + pgvector
ChunkingFixed-size with overlap
SearchVector similarity
MCPBuilt-in
EmbeddingsOllama
IncrementalSHA-256 hashing

Why: Multi-collection isolation, good if you already run Postgres.

Option C: GNO

github.com/Whamp/gno

PropertyDetail
BackendOwn engine (SQLite + vector index)
ChunkingMarkdown-aware
SearchHybrid (BM25 + vector + reranker)
MCPBuilt-in
EmbeddingsLocal ONNX models (bge-m3)
IncrementalSHA-256 tracking
BonusBuilt-in Web UI, wiki backlinks, knowledge graph viz

Why: Most feature-rich out of the box; includes a visual graph explorer and document editor.


Phase 2 — Knowledge Graph

Build a browsable graph of how pages relate to each other.

Lightweight (zero extra infra)

Quartz already renders a graph from [[wikilinks]] and frontmatter tags. Combined with backlinks in the page footer, this gives a visual map of the knowledge base with no additional service.

Structured graph (optional)

If the knowledge base grows large and relationship-aware queries matter:

  • Build a graph from frontmatter (tags, category, status)
  • Add [[wikilink]] edges between pages
  • Optionally push to a lightweight graph store (e.g. NetworkX JSON, or KuzuDB for larger graphs)
  • Expose via a custom MCP tool (search_related, find_path)

Graphify (github.com/Graphify-Labs/graphify) is the obvious choice here — but it is optimized for code (36 tree-sitter grammars), so its value is limited in a pure Markdown knowledge base. Revisit if the atlas later includes source code.


Phase 3 — AI-Driven Maintenance

Proactive quality-of-knowledge checks:

  • Orphan detection — pages with no incoming links
  • Stale content — pages not updated in >N months
  • Broken links[[wikilinks]] and file references that point nowhere
  • Contradiction flagging — two pages claiming different facts about the same topic

These are straightforward to implement as custom MCP tools or a periodic script (e.g. pre-commit hook or scheduled CI job).


Recommendation

PhaseWhatWhen
0Quartz FlexSearch + ripgrepNow
1sqmd MCP serverFirst upgrade
2Quartz wikilink graphAlongside content growth
3AI maintenance checksWhen content exceeds ~50 pages

Graphify is not recommended for the current scope (pure Markdown knowledge). If the repo later includes source code, reassess.