## Signature

```ts
const { search, init, labelled } = useDuxtSearch();
```

## Returns

| Value      | What it is                                           |
| :--------- | :--------------------------------------------------- |
| `search`   | Run a query, across every source                     |
| `init`     | Build the index, called when the dialog first opens  |
| `labelled` | Results carrying the source they came from           |

## Notes

The index is built on first use, not on page load: a reader who never searches
never pays for it.

Content ranks each collection separately. Because the resulting scores are not
comparable across collections, the composable interleaves their result lists by
position and puts the source being read first in each round. `labelled` retains
the provenance needed to explain that merge in the interface.