Basic Search & Autocomplete

Updated

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.

[@portabletext/react] Unknown block type "callout", specify a component for it in the `components.types` prop

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:

ParamTypeDescription
querystringThe search query
limitnumberMaximum number of results (optional)

Returns: SearchResults — contains search_id, results (array of SearchResult), key_highlights, and related_questions.

basic-query.ts
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:

ParamTypeDescription
querystringThe partial query to complete
knumberMaximum number of suggestions (optional)

Returns: SearchSuggestionsResponse — an object with a suggestions array of strings.

autocomplete.ts
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.

list-engines.ts
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}`);
Was this helpful?