> Fetch clean Markdown by appending `.md` to any page URL under https://signalwire.com/docs or requesting it with the HTTP header `Accept: text/markdown`. The root index at https://signalwire.com/docs/llms.txt lists the available documentation indexes. # Search > Build, query, and manage vector search indexes for agent knowledge bases. [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-sdk[search] # Basic search (~500MB) > pip install signalwire-sdk[search-full] # + Document processing (~600MB) > pip install signalwire-sdk[search-nlp] # + Advanced NLP features (~600MB) > pip install signalwire-sdk[search-all] # All search features (~700MB) > ``` > > For querying pre-built `.swsearch` indexes only (smallest footprint): > > ```bash > pip install signalwire-sdk[search-queryonly] # ~400MB > ``` 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. ## **Learn More** #### [SearchEngine](/docs/server-sdks/reference/python/agents/search/search-engine) Hybrid search engine combining vector similarity with keyword matching. #### [DocumentProcessor](/docs/server-sdks/reference/python/agents/search/document-processor) Process and chunk documents for indexing with multiple strategies. #### [IndexBuilder](/docs/server-sdks/reference/python/agents/search/index-builder) Build searchable indexes from document directories. #### [SearchService](/docs/server-sdks/reference/python/agents/search/search-service) HTTP API service for serving search queries with authentication and caching. #### [SearchIndexMigrator](/docs/server-sdks/reference/python/agents/search/migrator) Migrate search indexes between SQLite and pgvector backends. #### [Helper Functions](/docs/server-sdks/reference/python/agents/search/helpers) Query preprocessing, document preprocessing, model alias resolution, and constants. > Vector search and knowledge base capabilities for SignalWire AI agents ## Docs - [DocumentProcessor](https://signalwire.com/docs/server-sdks/reference/python/agents/search/document-processor.md): Process and chunk documents for search indexing with multiple strategies. - [create_chunks](https://signalwire.com/docs/server-sdks/reference/python/agents/search/document-processor/create-chunks.md): Split document content into chunks using the configured chunking strategy. - [Helper Functions & Constants](https://signalwire.com/docs/server-sdks/reference/python/agents/search/helpers.md): Query preprocessing, document preprocessing, model alias resolution, and constants. - [IndexBuilder](https://signalwire.com/docs/server-sdks/reference/python/agents/search/index-builder.md): Build searchable vector indexes from document directories. - [build_index](https://signalwire.com/docs/server-sdks/reference/python/agents/search/index-builder/build-index.md): Build a search index from a single directory. - [build_index_from_sources](https://signalwire.com/docs/server-sdks/reference/python/agents/search/index-builder/build-index-from-sources.md): Build a complete search index from multiple source files and directories. - [validate_index](https://signalwire.com/docs/server-sdks/reference/python/agents/search/index-builder/validate-index.md): Validate an existing .swsearch index file. - [SearchEngine](https://signalwire.com/docs/server-sdks/reference/python/agents/search/search-engine.md): Hybrid search engine for vector and keyword search over indexed documents. - [get_stats](https://signalwire.com/docs/server-sdks/reference/python/agents/search/search-engine/get-stats.md): Return statistics about the search index. - [search](https://signalwire.com/docs/server-sdks/reference/python/agents/search/search-engine/search.md): Perform a hybrid search query against the indexed documents. - [SearchIndexMigrator](https://signalwire.com/docs/server-sdks/reference/python/agents/search/migrator.md): Migrate search indexes between SQLite and pgvector backends. - [get_index_info](https://signalwire.com/docs/server-sdks/reference/python/agents/search/migrator/get-index-info.md): Retrieve information about a search index. - [migrate_pgvector_to_sqlite](https://signalwire.com/docs/server-sdks/reference/python/agents/search/migrator/migrate-pgvector-to-sqlite.md): Migrate a pgvector collection to a SQLite .swsearch file. - [migrate_sqlite_to_pgvector](https://signalwire.com/docs/server-sdks/reference/python/agents/search/migrator/migrate-sqlite-to-pgvector.md): Migrate a .swsearch SQLite index to a pgvector collection in PostgreSQL. - [SearchService](https://signalwire.com/docs/server-sdks/reference/python/agents/search/search-service.md): HTTP API service for serving search queries with authentication and caching. - [search_direct](https://signalwire.com/docs/server-sdks/reference/python/agents/search/search-service/search-direct.md): Perform a search programmatically without going through the HTTP API. - [start](https://signalwire.com/docs/server-sdks/reference/python/agents/search/search-service/start.md): Start the HTTP search service. - [stop](https://signalwire.com/docs/server-sdks/reference/python/agents/search/search-service/stop.md): Placeholder for stopping the search service (not yet implemented).