Universal Search
NewUpdated
Universal search queries multiple engines simultaneously — vector, keyword, and specialized indexes — and returns unified, scored results. You can stream results progressively as each engine responds.
In this guide you'll learn how to:
- Run a multi-engine search
- Stream results in real-time
- Configure engine selection and scoring
- Use autocomplete suggestions
Basic Universal Search
The simplest call queries all engines and returns aggregated results.
import { Chaos } from '@chaoslabs/ai-sdk';
const chaos = new Chaos({ apiKey: process.env.CHAOS_API_KEY! });
const { results, key_highlights } = await chaos.search.universal({
query: 'What are the top Ethereum staking options?',
limit: 15,
});
console.log(`Key insight: ${key_highlights}\n`);
for (const r of results) {
console.log(`[${r.engine_id}] ${r.title}`);
console.log(` ${r.description}\n`);
}Copy code
Open in Cursor
Open in VS Code
Open in v0
Open in Claude
Open in ChatGPT
Streaming Results
For UI applications, stream results so users see content as each engine responds — rather than waiting for all engines to finish.
const allResults: SearchResult[] = [];
await chaos.search.universalStream(
{
query: 'Morpho Blue vault strategies',
mode: 'deep',
score_results: true,
},
(event) => {
if (event.type === 'results') {
console.log(`⚡ ${event.engine_id}: +${event.results.length} results (${event.elapsed_ms}ms)`);
allResults.push(...event.results);
} else if (event.type === 'done') {
console.log(`\n✅ Search complete: ${event.total_results} total results`);
}
}
);
console.log(`\nCollected ${allResults.length} results across all engines`);Copy code
Open in Cursor
Open in VS Code
Open in v0
Open in Claude
Open in ChatGPT
Engine Selection
List available engines and select specific ones for your query.
// See what's available
const engines = await chaos.search.engines();
console.log('Available engines:', engines);
// Target specific engines
const results = await chaos.search.universal({
query: 'Aave v3 risk parameters',
engines: ['vector', 'keyword'],
mode: 'fast',
});Copy code
Open in Cursor
Open in VS Code
Open in v0
Open in Claude
Open in ChatGPT
Site Filtering
Restrict or exclude specific domains from results.
const results = await chaos.search.universal({
query: 'DeFi lending risks',
include_sites: ['aave.com', 'docs.compound.finance'], // only these domains
// OR
exclude_sites: ['reddit.com', 'twitter.com'], // exclude these
});Copy code
Open in Cursor
Open in VS Code
Open in v0
Open in Claude
Open in ChatGPT
Autocomplete Suggestions
Power a search-as-you-type experience with real-time suggestions.
const { suggestions } = await chaos.search.suggestions('defi yiel', 5);
// → ['defi yield farming', 'defi yield aggregator', 'defi yield optimization', ...]
for (const s of suggestions) {
console.log(` → ${s}`);
}Copy code
Open in Cursor
Open in VS Code
Open in v0
Open in Claude
Open in ChatGPT
Was this helpful?