> ## Documentation Index
> Fetch the complete documentation index at: https://docs.agentfront.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Search Interfaces

> SearchOptions and SearchResult types

Interfaces for search operations in VectoriaDB.

## SearchOptions

Options for search queries.

```ts theme={"theme":{"light":"snazzy-light","dark":"dark-plus"}}
interface SearchOptions<T extends DocumentMetadata = DocumentMetadata> {
  /**
   * Maximum number of results to return
   * @default 10
   */
  topK?: number;

  /**
   * Minimum similarity score threshold (0-1)
   * @default 0.3
   */
  threshold?: number;

  /**
   * Filter function for metadata
   * Returns true if document should be included
   */
  filter?: FilterFunction<T>;

  /**
   * Include embedding vector in results
   * @default false
   */
  includeVector?: boolean;
}
```

### FilterFunction

```ts theme={"theme":{"light":"snazzy-light","dark":"dark-plus"}}
type FilterFunction<T extends DocumentMetadata> = (metadata: T) => boolean;
```

### Example

```ts theme={"theme":{"light":"snazzy-light","dark":"dark-plus"}}
const results = await db.search('query', {
  topK: 5,
  threshold: 0.5,
  filter: (metadata) =>
    metadata.owner === 'billing' &&
    !metadata.deprecated,
  includeVector: false,
});
```

***

## SearchResult

Result from a search query.

```ts theme={"theme":{"light":"snazzy-light","dark":"dark-plus"}}
interface SearchResult<T extends DocumentMetadata = DocumentMetadata> {
  /**
   * Document ID
   */
  id: string;

  /**
   * Document metadata
   */
  metadata: T;

  /**
   * Cosine similarity score (0-1, higher is better)
   */
  score: number;

  /**
   * Original text used for embedding
   */
  text: string;

  /**
   * Embedding vector (only if includeVector: true)
   */
  vector?: Float32Array;
}
```

### Example

```ts theme={"theme":{"light":"snazzy-light","dark":"dark-plus"}}
const results = await db.search('find users');

for (const result of results) {
  console.log({
    id: result.id,
    score: result.score,
    title: result.metadata.toolName,
    text: result.text.substring(0, 50),
  });
}
```

***

## VectoriaStats

Statistics about the database.

```ts theme={"theme":{"light":"snazzy-light","dark":"dark-plus"}}
interface VectoriaStats {
  /**
   * Total number of embeddings
   */
  totalEmbeddings: number;

  /**
   * Vector dimensions
   */
  dimensions: number;

  /**
   * Memory usage estimate in bytes
   */
  estimatedMemoryBytes: number;

  /**
   * Embedding model name
   */
  modelName: string;
}
```

### Example

```ts theme={"theme":{"light":"snazzy-light","dark":"dark-plus"}}
const stats = db.getStats();

console.log({
  documents: stats.totalEmbeddings,
  dimensions: stats.dimensions,
  memoryMB: (stats.estimatedMemoryBytes / 1024 / 1024).toFixed(2),
  model: stats.modelName,
});
```

## Related

<CardGroup cols={3}>
  <Card title="search()" icon="magnifying-glass" href="/vectoriadb/api-reference/vectoriadb/search">
    Search method
  </Card>

  <Card title="Documents" icon="file-lines" href="/vectoriadb/api-reference/interfaces/documents">
    Document interfaces
  </Card>

  <Card title="Configuration" icon="gear" href="/vectoriadb/api-reference/interfaces/config">
    Config interfaces
  </Card>
</CardGroup>
