Skip to content

Search Returned an Answer. Was It the Right One?

Six connected lessons on inverted indexes, relevance, refresh semantics, distributed top-K, faceted counts and live reindexing.

Start series →

Follow the decisions in order

  1. Part 1 of 6

    Senior

    The title contains the word. Why is the database reading every row?

    Distinguish leading-wildcard scans, token retrieval and arbitrary substring matching, then select suitable indexes and semantics.

  2. Part 2 of 6

    Staff

    Search takes 40 milliseconds. Why are the first ten results wrong?

    Separate lexical BM25 score, candidate recall, graded ranking quality and user success using judged queries and safe experiments.

  3. Part 3 of 6

    Staff

    Elasticsearch acknowledged the document. Why can't search find it?

    Differentiate index durability, search refresh, Lucene commit, and immutable-segment merging without false ordering assumptions.

  4. Part 4 of 6

    Staff

    Each shard returned its best ten. Why is the global top ten wrong?

    Prove when local top-K is globally sufficient, identify shard-local scoring divergence, and design consistent pagination and fanout.

  5. Part 5 of 6

    Staff

    The filter says 1,200 jackets. Why can search find only 1,130?

    Define exact facet query populations, distinguish post filters, and reason about approximate shard-local terms buckets.

  6. Part 6 of 6

    Principal

    The new index has two billion documents. Can we switch search to it now?

    Migrate search mappings through consistent snapshots, change history, version-safe writes, cutover and reversible rollback.