part of: the tour · chapter 8 of 12

Search

Finds things by meaning and by misspelling, and returns every hit with its relationships attached.

The box, on every page

A plain search form in the header of every page. Pressing / focuses it. It is an ordinary GET form: it works with JavaScript disabled, and the results have an address you can share.

Why Search is the site’s second navigation system and it must never be the part that requires a working script. The type-ahead is an addition to a thing that already worked.

Connects Because results are a plain URL, a search is quotable — /search?q=nord+stream is a citation.

See it live A search for “nord stream”

Two ways of matching, unioned

Every query runs as full-text search over labels, aliases and selected text, and as name-similarity matching, with the results blended into one ranked list.

Why The two find different things. Full text is precise about words; similarity is forgiving about spelling, which is what you need for names — and names are most of what anyone searches for here.

Connects Each result says which branch found it, so the ranking is explainable rather than magic.

See it live A search for “nord stream”

Misspelled names still find their subject

Search for Seymore Hersch — both words wrong — and the entity Seymour Hersh comes back, marked as matched by name similarity. Full-text search returns nothing for that query.

Why Names in the news are transliterated, misheard and misspelled constantly. A search that only rewards correct spelling makes a research tool useless to exactly the reader who most needs it: one who half-remembers a name.

Connects The same similarity matching powers the “did you mean” suggestions on an empty result.

See it live A search with both words misspelled

Questions come first

At comparable text scores, an open Question outranks an entity, which outranks a claim, an event, and a source. Where a Question is close to the top, it is pinned above the list as a full card.

Why The Question is the object that explains all the others — it shows the competition a claim belongs to. Landing a searcher on a Question first means they meet the uncertainty before they meet an assertion.

Connects The pinned card is the same leaderboard as the front page and the Question page: top branches, unknown share, source count.

See it live A search that pins a Question · The Question it pins

Every hit arrives with its relationships

A result is never a bare title. A Question shows its top branches and unknown share; a claim its standing, its Questions and its sources; an entity its type, aliases and how many claims and statements it appears in; an event its time and participants; a source its publisher and what restates it.

Why A list of titles makes you open ten tabs to find out which one you wanted. Attaching the relationships turns the results page into a working view of that corner of the model.

Connects Every element of every strip is itself a link — search is a first-class part of “everything links to everything”, not an exception to it.

See it live Results with their strips · One of the entities they lead to

Why this result is here

Each hit ends with the reason it matched: matched by text, matched by name similarity, or both.

Why Search ranking is the one place almost every site asks for blind trust. Saying which branch found a result costs a line and makes an odd result diagnosable instead of mysterious.

Connects It is the same discipline as the heat badges: rank things, then explain the ranking in words.

See it live Results, with their reasons

Filter by kind

Chips across the top count the results by kind and filter to one — questions, claims, entities, events, sources — as ordinary links.

Why Kind is the one filter that reliably matches what a reader is trying to do: find a person, find a document, find the argument.

Connects Each filtered view is its own URL, so it can be linked and returned to.

See it live Entities only

When nothing matches

The honest version: “The model may simply not contain this yet — it holds only what it has read, and it has read a small number of documents.” Followed by the nearest things it does contain.

Why “No results” invites the reader to conclude the thing is not true or not covered. The real reason is nearly always that this is a small corpus, and saying so is both more accurate and more useful.

Connects It is the empty-state rule again: state the mechanism, never apologise, never imply a fact you do not have.

See it live A search that matches nothing

Type-ahead that cannot disagree with Enter

With JavaScript on, suggestions appear as you type, kind-badged and keyboard-navigable, from the site’s own public suggest endpoint — using the same ordering rule as the results page.

Why Sharing the ranking is deliberate: a type-ahead with its own idea of relevance would show you one thing and then hand you a different list when you pressed Enter.

Connects The endpoint is public and documented, like everything else the site’s own interface uses.

See it live The API

Your query is not a profile

Queries are not logged beyond ordinary access logs, not associated with a visitor, and echoed back to the page escaped. The site sets no cookies at all.

Why A research tool that quietly records what you were curious about changes what people are willing to look up — and a site about contested events has a particular duty not to build that record.

Connects The same policy runs through the whole site: page counting is a timestamp and a path, nothing else.

See it live How this site counts