Search & Knowledge Map
How Wikori finds things — exact matches, meaning-based matches, reliability ranking, and the graph that shows you what connects to what.
How search works
Every processed file carries a metadata block: title, summary, entities, tags, source type, confidence and authority. Rebuilding the index gathers all of that into the vault's index.md — one compact, human-readable line per entry. That file is what search reads, which is why searching a large vault is fast, works offline, and costs nothing: no query you or your agent ever runs against an indexed vault produces an API call.
Matching is built for real work, not just prose. Queries are split on non-alphanumeric characters, so identifiers like BDC-2301, an invoice number or a tax ID match exactly rather than fuzzily. Tokens carrying digits are weighted higher, matching respects word boundaries — a 12 from an ID never matches a title containing 2012 — and common Portuguese and English stop-words are ignored.
If search feels stale, rebuild the index. Everything downstream — search, the Knowledge Map, your AI agents — reads the index, not the raw folder.
Ranked by reliability, not just similarity
Text similarity alone will happily hand you a scraped blog post over your own signed policy, because the blog repeats the keyword more often. Wikori corrects for that: after the text score is computed, it is multiplied by two reliability factors carried in each entry's metadata.
| Factor | Values | Effect on score |
|---|---|---|
source_authority | high / medium / low | high boosts the result, low pushes it down |
confidence | 0.0 – 1.0 | a confident extraction outranks a hedged one |
memory_tier | working / episodic / semantic / procedural | not scored, but returned so agents know what kind of knowledge they found |
source_type | contract, decision, webpage, email… | returned with every hit, and filterable |
Every result carries these fields back with it, so you — and your AI agent — can see why something ranked where it did.
Semantic search (optional)
Exact matching misses the question asked in different words. Turn on the semantic layer and Wikori also compares meaning: a search for "termination clause" surfaces the contract that says "either party may end this agreement", and a question asked in Portuguese finds a document written in English.
It runs entirely on your machine. The embedding model ships inside the app — nothing is downloaded, nothing is uploaded, and generating the vectors costs no API tokens. The vector database itself is a local file in your own storage: there is no hosted search service behind it, no per-query fee and no account. It covers 50+ languages.
Go to Settings → Search and switch semantic search on. The change takes effect without restarting the app.
Enabling it builds the index for the current vault, with a progress bar. After that, indexing is incremental — a newly ingested file is searchable within seconds, without rebuilding anything.
Reindex in Settings → Search (or from Home) rebuilds the vault's semantic index from scratch. It's the repair path after bulk deletions or a corrupted index.
The bundled model costs roughly 235 MB of disk and some memory while loaded. If a query has no semantically close match, Wikori returns nothing from the semantic layer and falls back to exact search rather than inventing weak hits — scores are reported honestly, so the top result is not always 100.
Filtering results
Agents can narrow a semantic search to a slice of the vault by passing a filter alongside the query:
Filters need the semantic layer. If one is requested while it's switched off, the answer says explicitly that the filter was ignored — it is never dropped silently.
The Knowledge Map
Search answers a question you already knew to ask. The Knowledge Map is for the ones you didn't. It draws every entity and document in the vault as a force-directed graph, clustering things that appear together.
| Element | Meaning |
|---|---|
| Grey squares | Documents. Larger squares have more connections. |
| Coloured circles | Entities — companies, people, frameworks, places. Colour indicates the type; size indicates how connected it is. |
| Lines | Co-occurrence: the entity and the document appear together. |
| Detail panel | Click any node for its summary, its tags, its connected entities and the documents it appears in — each one clickable, so you can walk the graph. |
Use the search box to find and centre a node by name in a large graph. The map is built from the index, so rebuild the index first if a recently ingested document is missing.
An empty map means no entities have been extracted yet. Process a few files and rebuild the index — the graph appears from the first rebuild onward.
What your AI agent uses
| Tool | Search behaviour |
|---|---|
search_vault | Exact, token-based matching over the index. Always available. |
query_vault | Tries the semantic pipeline first, falls back to exact matching. Accepts an optional filter. |
semantic_search_vault | Meaning-based search with optional filter and limit; falls back automatically when the semantic layer is unavailable. |
memory_smart_search | Reliability-weighted search returning full metadata — the one to use when the agent must judge which source to trust. |
Full agent setup lives in MCP & AI Agents.