Search request parameters
Request parameters for document search
Search query string (required)
OptionalviewMode?: ViewModeView mode: files or projects
Optionalsources?: string[] | nullFilter by specific sources
Optionalentities?: string[] | nullFilter by entity names
OptionalfileHashes?: string[] | nullFilter by specific file hashes
OptionalchunkIds?: string[] | nullFilter by specific chunk IDs
Optionalpage?: numberPage number (1-indexed, default: 1)
Optionallimit?: numberMaximum results to return (1-100, default: 10)
OptionalsortBy?: "relevance" | "date" | "source" | "chunk_index"Sort order: "relevance" | "date" | "source" | "chunk_index" (default: "relevance")
OptionalsortOrder?: "asc" | "desc"Sort direction
OptionalincludeContent?: booleanInclude full content in results (default: true)
OptionalincludeEntities?: booleanInclude entities in results (default: true)
OptionalincludeSummary?: booleanInclude AI summary in results
OptionaluserIds?: string[] | nullFilter results to specific users' data (admin only)
OptionalbypassPermissions?: booleanBypass source permission checks (admin only)
OptionalexactMatch?: booleanReturn only exact phrase matches (case-insensitive). Default: false
Promise resolving to SearchResponse:
results - Array of SearchResult objects with document chunkstotal - Total number of matching documentsquery - Original query stringsources - Sources that were searchedpage - Current page numberlimit - Limit that was appliedtotalPages - Total number of pagestookMs - Query execution time in millisecondsimport { searchDocuments } from "@cpod/sdk";
// Basic search (fuzzy search by default)
const results = await searchDocuments({
query: "quarterly revenue",
limit: 20,
});
console.log(`Found ${results.total} documents in ${results.tookMs}ms`);
console.log(`Page ${results.page} of ${results.totalPages}`);
// Exact phrase matching
const exactResults = await searchDocuments({
query: "user authentication flow",
exactMatch: true, // Only finds exact phrase
page: 1,
});
// Search with filters
const filtered = await searchDocuments({
query: "security policy",
sources: ["policies", "compliance"],
entities: ["GDPR"],
sortBy: "date",
limit: 50,
});
for (const result of filtered.results) {
console.log(`${result.sourceFilename} (score: ${result.relevanceScore})`);
console.log(` Entities: ${result.entities?.join(", ")}`);
}
Search documents using ClickHouse full-text search
Performs semantic search across indexed documents with support for filtering by sources, entities, and file hashes. Results include relevance scoring.