Skip to main content

Multi-query search

Kestrel Search accepts repeated queries and search engines. It normalizes and deduplicates both lists while preserving their order. Use a positional primary query and repeat --query for related queries:
You can also use --query for every query; a positional query is not required:

Choose fanout mode

Fanout runs every query and engine pair. This maximizes coverage and tolerates partial provider failures.
The example can run up to four query-provider requests concurrently.

Choose fallback mode

Fallback treats the engines as an ordered preference list. For each query, Kestrel tries the next engine only when the previous engine fails.
Different queries still run concurrently in fallback mode.

How results are combined

Kestrel Search round-robins the result lists so one query or engine does not occupy every early candidate slot. Canonically equivalent URLs are merged, and their contributing query and engine occurrences are retained in sources. When ranking is enabled, results are ranked within their originating-query groups and interleaved again. See ranking and fairness.