search-config

Search Config - Complete API Reference

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "search-config" with this command: npx skills add alsk1992/cloddsbot/alsk1992-cloddsbot-search-config

Search Config - Complete API Reference

Configure search indexing, manage search backends, and optimize full-text search.

Chat Commands

View Status

/search-config Show search config /search-config status Index status /search-config stats Search statistics

Index Management

/search-config rebuild Rebuild all indexes /search-config rebuild memories Rebuild specific index /search-config optimize Optimize indexes /search-config clear <index> Clear index

Configuration

/search-config backend sqlite Set backend /search-config backend elasticsearch Use Elasticsearch /search-config mode hybrid Set search mode /search-config boost semantic 0.7 Set semantic weight

TypeScript API Reference

Create Search Service

import { createSearchService } from 'clodds/search';

const search = createSearchService({ // Backend backend: 'sqlite', // 'sqlite' | 'elasticsearch' | 'typesense' | 'meilisearch'

// Search mode mode: 'hybrid', // 'fulltext' | 'semantic' | 'hybrid'

// Hybrid weights semanticWeight: 0.6, fulltextWeight: 0.4,

// Embedding provider (for semantic) embeddings: { provider: 'openai', model: 'text-embedding-3-small', },

// Storage dbPath: './search.db', });

Index Documents

// Index single document await search.index({ collection: 'memories', id: 'mem-1', content: 'User prefers conservative trading', metadata: { type: 'preference', userId: 'user-123', }, });

// Index batch await search.indexBatch({ collection: 'documents', documents: [ { id: 'doc-1', content: 'First document', metadata: {} }, { id: 'doc-2', content: 'Second document', metadata: {} }, ], });

Search

// Full-text search const results = await search.search({ query: 'trading strategies', collection: 'documents', limit: 10, });

for (const result of results) { console.log(${result.id}: ${result.score}); console.log( ${result.snippet}); }

// With filters const results = await search.search({ query: 'bitcoin', collection: 'news', filters: { date: { gte: '2024-01-01' }, source: 'reuters', }, limit: 20, });

Hybrid Search

// Combine full-text and semantic const results = await search.hybridSearch({ query: 'how to manage risk in trading', collection: 'documents', semanticWeight: 0.7, fulltextWeight: 0.3, limit: 10, });

Get Index Stats

const stats = await search.getStats();

console.log('Index Statistics:'); for (const [collection, info] of Object.entries(stats.collections)) { console.log(${collection}:); console.log( Documents: ${info.documentCount}); console.log( Size: ${info.sizeMB} MB); console.log( Last indexed: ${info.lastIndexed}); }

console.log(\nSearch Stats:); console.log( Queries today: ${stats.queriesToday}); console.log( Avg latency: ${stats.avgLatencyMs}ms); console.log( Cache hit rate: ${stats.cacheHitRate}%);

Rebuild Index

// Rebuild all indexes await search.rebuildAll();

// Rebuild specific collection await search.rebuild('memories');

// With progress callback await search.rebuild('documents', { onProgress: (progress) => { console.log(${progress.current}/${progress.total} (${progress.percent}%)); }, });

Optimize Index

// Optimize for better performance await search.optimize();

// Optimize specific collection await search.optimize('documents');

Clear Index

// Clear specific collection await search.clear('memories');

// Clear all await search.clearAll();

Configure Backend

// Switch to Elasticsearch await search.setBackend('elasticsearch', { url: process.env.ELASTICSEARCH_URL, index: 'clodds', });

// Switch to Typesense await search.setBackend('typesense', { url: process.env.TYPESENSE_URL, apiKey: process.env.TYPESENSE_API_KEY, });

Search Backends

Backend Best For Features

SQLite Development, small data Simple, embedded

Elasticsearch Production, large data Scalable, powerful

Typesense Fast search Typo tolerance

Meilisearch Instant search Easy setup

Search Modes

Mode Description

fulltext

Traditional keyword matching

semantic

Vector similarity search

hybrid

Combined (best of both)

Hybrid Search Weights

// More emphasis on meaning const results = await search.hybridSearch({ query: 'risk management', semanticWeight: 0.8, // 80% semantic fulltextWeight: 0.2, // 20% keyword });

// More emphasis on exact matches const results = await search.hybridSearch({ query: 'BTCUSDT', semanticWeight: 0.2, // 20% semantic fulltextWeight: 0.8, // 80% keyword });

Best Practices

  • Use hybrid search — Best results for most queries

  • Rebuild periodically — Keep indexes fresh

  • Optimize after bulk inserts — Improve performance

  • Monitor latency — Scale if too slow

  • Tune weights — Adjust semantic/fulltext balance

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Automation

binance-futures

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

trading-futures

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

tts

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

auto-reply

No summary provided by upstream source.

Repository SourceNeeds Review