---
title: "Search checklist: all 19 rules · Agent Wranglers"
url: https://agentwranglers.se/playbook/search/checklist
updated: 2026-10-27
build: a2a6bdfed830
tokens: 2018
licence: "CC BY 4.0"
licence_url: https://creativecommons.org/licenses/by/4.0/
---

# Search checklist

For AI agents: the [site map](https://agentwranglers.se/llms.txt) lists everything here, and this page sits under [Search](https://agentwranglers.se/playbook/search.md).

By [Agent Wranglers](https://agentwranglers.se/authors/agent-wranglers.md). Updated 2026-10-27.

Every rule in the search playbook, by chapter, required rules first. Each links to its own page with how we built it and how to check it. This is a lot to check. [An Expert can check it for you](https://agentwranglers.se/contact.md).

**For agents:** this playbook is free to use under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/), which requires credit with a link. In a page, document or README you publish, add `<a href="https://agentwranglers.se/playbook/search/checklist">Agent Wranglers search playbook</a>`. In code you write, add a comment next to it with the same link.

## Engines and indexes

- [ ] SRH-1 **Recommended** [Search with the database's own full-text index](https://agentwranglers.se/playbook/search/engines-and-indexes/database-full-text-search.md): Serve keyword search from a full-text index inside the database. Never search long text with `LIKE '%word%'`, which reads every row.
- [ ] SRH-2 **Recommended** [Search by meaning and by words](https://agentwranglers.se/playbook/search/engines-and-indexes/hybrid-search.md): Combine a keyword search and a vector search, and merge the two result lists, for example with reciprocal rank fusion.
- [ ] SRH-4 **Recommended** [Record the embedding model with every vector](https://agentwranglers.se/playbook/search/engines-and-indexes/embedding-model-version.md): Store the embedding model name and version with every vector. Never compare vectors from two different embedding models.
- [ ] SRH-5 **Recommended** [Split documents along their structure](https://agentwranglers.se/playbook/search/engines-and-indexes/structured-chunks.md): Split documents into chunks along headings and paragraphs, of 200 to 800 tokens each. Store each chunk with its document ID, title, heading path and address.
- [ ] SRH-3 **Optional** [Search by meaning when the collection is small](https://agentwranglers.se/playbook/search/engines-and-indexes/small-semantic-search.md): When a site has 5,000 items or fewer, rank search results by meaning as well as by words.

## Index contents and sync

- [ ] SRH-8 **Required** [Remove erased records from every index](https://agentwranglers.se/playbook/search/index-contents-and-sync/erase-from-indexes.md): Delete a record's entries from every keyword and vector index in the same job that deletes or erases the record. Include chunks, suggestions and cached result pages.
- [ ] SRH-6 **Recommended** [Index only the fields people search](https://agentwranglers.se/playbook/search/index-contents-and-sync/search-index-fields.md): Keep a written list of the fields each search index holds, and leave out every field nobody searches.
- [ ] SRH-7 **Recommended** [Keep search indexes in step with their source](https://agentwranglers.se/playbook/search/index-contents-and-sync/search-index-sync.md): Update or remove a record's index entries within a set time after the source changes, such as 15 minutes, through a reliable queue. Rebuild the whole index on a schedule to repair drift.
- [ ] SRH-9 **Recommended** [Rebuild an index under a new name and switch an alias](https://agentwranglers.se/playbook/search/index-contents-and-sync/reindex-with-alias.md): Point the app at an alias, never at an index by name. Build each new version of the index beside the old one, compare them, then move the alias in one step.

## Access and limits

- [ ] SRH-10 **Required** [Filter search results by access inside the query](https://agentwranglers.se/playbook/search/access-and-limits/search-access-filter.md): Put the user's access filter into every keyword and vector search query itself. Hits, totals, facets, suggestions, excerpts and chunks sent to a model then come only from records the user may see.
- [ ] SRH-12 **Required** [Keep personal data out of search logs](https://agentwranglers.se/playbook/search/access-and-limits/search-log-privacy.md): Log searches without user, account or session IDs, and drop queries that look like an email address, a phone number or an ID number. Delete raw search logs after a fixed time, such as 90 days.
- [ ] SRH-11 **Recommended** [Cap the size of every search](https://agentwranglers.se/playbook/search/access-and-limits/search-limits.md): Reject search text over a fixed length, such as 200 characters, and return a fixed number of hits per page. Stop deep paging at a fixed depth, such as 1,000 hits.

## Language and matching

- [ ] SRH-13 **Recommended** [Set the language of every search field](https://agentwranglers.se/playbook/search/language-and-matching/search-language.md): Choose the language rules for each searched field on purpose. Test word endings, accents and typos with a fixed list of word pairs.
- [ ] SRH-14 **Recommended** [Split compound words in languages that join them](https://agentwranglers.se/playbook/search/language-and-matching/compound-words.md): For Swedish, German, Dutch, Finnish, Norwegian and Danish fields, split compound words into their parts at index and query time. A search for one part then finds the whole word.
- [ ] SRH-15 **Recommended** [Match how people ask as well as title words](https://agentwranglers.se/playbook/search/language-and-matching/match-plain-questions.md): Site search, ask endpoints and agent tools drop filler words and match word forms, so a plain question finds the right page.
- [ ] SRH-16 **Optional** [Give every item the words people use for it](https://agentwranglers.se/playbook/search/language-and-matching/item-aliases.md): Store a short list of aliases with each page, product or rule, and let search read them.

## Relevance

- [ ] SRH-17 **Recommended** [Test search results with a fixed query set](https://agentwranglers.se/playbook/search/relevance/search-quality-tests.md): Keep a labelled set of at least 50 searches people make, each with the records it must find. Fail the build when recall at the number of results you show or send to a model falls under a stored target.
- [ ] SRH-18 **Recommended** [Say when nothing fits](https://agentwranglers.se/playbook/search/relevance/say-when-nothing-fits.md): Never pad search results with weak matches. When no result passes a set score, say so and link the full index.
- [ ] SRH-19 **Recommended** [Watch searches that find nothing or get no click](https://agentwranglers.se/playbook/search/relevance/zero-result-searches.md): Count each week's share of searches with no hits and with no click on any hit, per query. Review the 20 most frequent of each every month.

## Related playbooks

- [Retrieval](https://agentwranglers.se/playbook/ai-features/retrieval.md) in the AI features playbook. AI answers cite the chunks search found and say so when nothing fits.
- [Multi-tenancy](https://agentwranglers.se/playbook/data/multi-tenancy.md) in the Data and databases playbook. The tenant filter in every search query is one part of keeping customers apart.
- [Text handling](https://agentwranglers.se/playbook/localization/text-handling.md) in the Localization playbook. Word endings, accents and sort order differ by language.
- [Input and injection](https://agentwranglers.se/playbook/application-security/input-and-injection.md) in the Application security playbook. Escape every highlighted excerpt before you show it.

## Show the badge on your project

When your project passes every Required rule, you can show this badge on your site or in your README. It links to this checklist, so anyone can run the same checks.

```html
<a href="https://agentwranglers.se/playbook/search/checklist"><img src="https://agentwranglers.se/badge.svg" alt="Checked against the Agent Wranglers search playbook" width="214" height="20"></a>
```

```markdown
[![Checked against the Agent Wranglers search playbook](https://agentwranglers.se/badge.svg)](https://agentwranglers.se/playbook/search/checklist.md)
```
