Basic Search & Autocomplete
This page covers three methods for simple search workflows: running a keyword query, powering autocomplete with real-time suggestions, and discovering which search engines are available.
Simple Query
query(query, limit?) runs a basic search and returns ranked results with content snippets. This is the fastest way to search — it uses the default engine configuration.
Parameters:
| Param | Type | Description |
|---|---|---|
query | string | The search query |
limit | number | Maximum number of results (optional) |
Returns: SearchResults — contains search_id, results (array of SearchResult), key_highlights, and related_questions.
import { Chaos } from '@chaoslabs/ai-sdk';
const chaos = new Chaos({ apiKey: process.env.CHAOS_API_KEY! });
const { results, search_id, key_highlights } = await chaos.search.query(
'Aave v3 liquidation parameters',
10,
);
console.log(`Search ID: ${search_id}`);
console.log(`Key highlights: ${key_highlights}\n`);
for (const r of results) {
console.log(`${r.title}`);
console.log(` ${r.description}`);
console.log(` URL: ${r.url}`);
console.log(` Engine: ${r.engine_id} (${r.elapsed_ms}ms)\n`);
}Autocomplete Suggestions
suggestions(query, k?) returns autocomplete suggestions for a partial query string. Use this to power a search-as-you-type experience in your UI.
Parameters:
| Param | Type | Description |
|---|---|---|
query | string | The partial query to complete |
k | number | Maximum number of suggestions (optional) |
Returns: SearchSuggestionsResponse — an object with a suggestions array of strings.
import { Chaos } from '@chaoslabs/ai-sdk';
const chaos = new Chaos({ apiKey: process.env.CHAOS_API_KEY! });
// Simulate a user typing in a search box
const { suggestions } = await chaos.search.suggestions('defi lend', 5);
console.log('Autocomplete suggestions:');
for (const s of suggestions) {
console.log(` ${s}`);
}
// Use the first suggestion as a full query
if (suggestions.length > 0) {
const results = await chaos.search.query(suggestions[0], 10);
console.log(`\nResults for "${suggestions[0]}": ${results.results.length} hits`);
}Discovering Engines
engines() returns the list of available search engine groups. Use this to see which engines you can target in a universal() or universalStream() call.
Parameters: None.
Returns: EngineGroup[] — an array of engine group objects.
import { Chaos } from '@chaoslabs/ai-sdk';
const chaos = new Chaos({ apiKey: process.env.CHAOS_API_KEY! });
const engineGroups = await chaos.search.engines();
console.log('Available search engine groups:');
console.log(JSON.stringify(engineGroups, null, 2));
// Use discovered engines in a universal search
const results = await chaos.search.universal({
query: 'Compound v3 USDC market',
engines: ['vector', 'keyword'],
mode: 'fast',
});
console.log(`\nResults: ${results.results.length}`);