***

title: Search
sidebar-title: Search
subtitle: Vector search and knowledge base capabilities for SignalWire AI agents
slug: /reference/python/agents/search
description: Build, query, and manage vector search indexes for agent knowledge bases.
max-toc-depth: 3
---------------------

For a complete index of all SignalWire documentation pages, fetch https://signalwire.com/docs/llms.txt

[sw-search-cli-reference]: /docs/server-sdks/reference/python/agents/cli/sw-search

[search-engine]: /docs/server-sdks/reference/python/agents/search/search-engine

[document-processor]: /docs/server-sdks/reference/python/agents/search/document-processor

[index-builder]: /docs/server-sdks/reference/python/agents/search/index-builder

[search-service]: /docs/server-sdks/reference/python/agents/search/search-service

[migrator]: /docs/server-sdks/reference/python/agents/search/migrator

[helpers]: /docs/server-sdks/reference/python/agents/search/helpers

The Search module provides local vector search capabilities for building knowledge bases
that power SignalWire AI agents. It supports hybrid search combining vector similarity
with keyword matching, multiple document formats, configurable chunking strategies,
and both SQLite and PostgreSQL (pgvector) storage backends.

<Warning>
  The search module requires additional dependencies not included in the base SDK install.
  Choose the install level that matches your use case:

  ```bash
  pip install signalwire[search]           # Basic search (~500MB)
  pip install signalwire[search-full]      # + Document processing (~600MB)
  pip install signalwire[search-nlp]       # + Advanced NLP features (~600MB)
  pip install signalwire[search-all]       # All search features (~700MB)
  ```

  For querying pre-built `.swsearch` indexes only (smallest footprint):

  ```bash
  pip install signalwire[search-queryonly]  # ~400MB
  ```
</Warning>

All classes and functions are imported from the `signalwire.search` namespace:

```python
from signalwire.search import (
    SearchEngine,
    DocumentProcessor,
    IndexBuilder,
    SearchService,
    SearchIndexMigrator,
    preprocess_query,
    preprocess_document_content,
    resolve_model_alias,
    MODEL_ALIASES,
    DEFAULT_MODEL,
)
```

If the required dependencies are not installed, importing these names will raise an
`ImportError` with a message indicating which packages are missing.

<Info>
  The `sw-search` CLI tool provides command-line access to index building, validation,
  and querying. See the [sw-search CLI reference][sw-search-cli-reference]
  for details.
</Info>

## **Learn More**

<CardGroup cols={2}>
  <Card title="SearchEngine" href="/docs/server-sdks/reference/python/agents/search/search-engine">
    Hybrid search engine combining vector similarity with keyword matching.
  </Card>

  <Card title="DocumentProcessor" href="/docs/server-sdks/reference/python/agents/search/document-processor">
    Process and chunk documents for indexing with multiple strategies.
  </Card>

  <Card title="IndexBuilder" href="/docs/server-sdks/reference/python/agents/search/index-builder">
    Build searchable indexes from document directories.
  </Card>

  <Card title="SearchService" href="/docs/server-sdks/reference/python/agents/search/search-service">
    HTTP API service for serving search queries with authentication and caching.
  </Card>

  <Card title="SearchIndexMigrator" href="/docs/server-sdks/reference/python/agents/search/migrator">
    Migrate search indexes between SQLite and pgvector backends.
  </Card>

  <Card title="Helper Functions" href="/docs/server-sdks/reference/python/agents/search/helpers">
    Query preprocessing, document preprocessing, model alias resolution, and constants.
  </Card>
</CardGroup>