From 66775e08161235ee713e233eb907e3ccc05c4638 Mon Sep 17 00:00:00 2001 From: rasika-chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Fri, 3 Jul 2026 14:14:52 +0530 Subject: [PATCH 1/4] PSMDB-2163 vector search --- docs/overview-search.md | 0 mkdocs-base.yml | 2 ++ 2 files changed, 2 insertions(+) create mode 100644 docs/overview-search.md diff --git a/docs/overview-search.md b/docs/overview-search.md new file mode 100644 index 000000000..e69de29bb diff --git a/mkdocs-base.yml b/mkdocs-base.yml index 460093777..ba078347e 100644 --- a/mkdocs-base.yml +++ b/mkdocs-base.yml @@ -200,6 +200,8 @@ nav: - Feature comparison with MongoDB: comparison.md - Storage: - "Percona Memory Engine": "inmemory.md" + - Search: + - overview-search.md - Backup: - "Hot Backup": "hot-backup.md" - backup-cursor.md From b391b9fb988097bba435cd9004fb82996b62673f Mon Sep 17 00:00:00 2001 From: rasika-chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Fri, 3 Jul 2026 14:27:50 +0530 Subject: [PATCH 2/4] Update overview-search.md --- docs/overview-search.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docs/overview-search.md b/docs/overview-search.md index e69de29bb..729e665dd 100644 --- a/docs/overview-search.md +++ b/docs/overview-search.md @@ -0,0 +1,7 @@ +# Search capabilities in Percona Server for MongoDB + +Percona Server for MongoDB supports **Full-text Search** and **Vector Search** through `mongot`, a dedicated search service that works alongside `mongod`. Together, they enable applications to perform keyword-based, semantic, and AI-powered searches without moving data to an external search platform. + +You can create search indexes on your collections and use aggregation pipeline stages such as `$search`, `$searchMeta`, and vector similarity queries to retrieve relevant results. + +`mongot` is included with Percona Server for MongoDB and is available in binary distributions and installation packages. \ No newline at end of file From 0ac2ea153eb937e42430dc30e68efb1362a2bfc5 Mon Sep 17 00:00:00 2001 From: rasika-chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Fri, 3 Jul 2026 14:59:15 +0530 Subject: [PATCH 3/4] Update overview-search.md --- docs/overview-search.md | 49 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 47 insertions(+), 2 deletions(-) diff --git a/docs/overview-search.md b/docs/overview-search.md index 729e665dd..cc7cb50d5 100644 --- a/docs/overview-search.md +++ b/docs/overview-search.md @@ -1,7 +1,52 @@ -# Search capabilities in Percona Server for MongoDB +# Search overview Percona Server for MongoDB supports **Full-text Search** and **Vector Search** through `mongot`, a dedicated search service that works alongside `mongod`. Together, they enable applications to perform keyword-based, semantic, and AI-powered searches without moving data to an external search platform. You can create search indexes on your collections and use aggregation pipeline stages such as `$search`, `$searchMeta`, and vector similarity queries to retrieve relevant results. -`mongot` is included with Percona Server for MongoDB and is available in binary distributions and installation packages. \ No newline at end of file +`mongot` is included with Percona Server for MongoDB and is available in binary distributions and installation packages. + +## What is mongot? + +[mongot :octicons-link-external-16:](https://www.mongodb.com/docs/manual/tutorial/mongot-sizing/advanced-guidance/architecture/){:target="_blank"} is a companion process that builds and maintains search indexes for your MongoDB collections. While mongod stores and manages your application data, `mongot` creates optimized search indexes and processes search queries. + +The two services communicate internally during query execution: + +- `mongod` stores documents and handles database operations. +- `mongot` maintains search indexes. +- Search queries are processed by `mongot`, while mongod retrieves the matching documents and returns the results to the client. + +This architecture separates search workloads from core database operations while keeping the indexed data synchronized with the database. + + +## Search types + +Percona Server for MongoDB supports the following search types. Choose the type that matches your query patterns: + +| **Search type** | **Query stages**| **Index type** | **Use for**| +|------------------|-----------------|----------------|------------| +| Full-text search | `$search`, `$searchMeta` | `search`| Relevance-ranked text queries, autocomplete, faceting, and highlighting | +| Vector search | `$vectorSearch`| `vectorSearch` | Semantic similarity queries using machine learning embeddings| + + +### Full-text search + +Full-text Search lets you search text stored in one or more fields using relevance-based ranking. It supports capabilities such as: + +- Keyword and phrase searches +- Boolean operators +- Fuzzy matching +- Wildcard searches +- Field-specific searches +- Relevance scoring + +Use cases include: + +- Product catalog search +- Documentation search +- Blog and article search +- Customer support knowledge bases + + +For information about the search architecture and the eventual consistency model, see Search in Percona Server for MongoDB. + From 563fd727d865bf079985e41eca80f6ba5d25dc0f Mon Sep 17 00:00:00 2001 From: rasika-chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Mon, 6 Jul 2026 14:58:23 +0530 Subject: [PATCH 4/4] Create vector-search-architecture.md --- docs/vector-search-architecture.md | 33 ++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 docs/vector-search-architecture.md diff --git a/docs/vector-search-architecture.md b/docs/vector-search-architecture.md new file mode 100644 index 000000000..ca48ddc4e --- /dev/null +++ b/docs/vector-search-architecture.md @@ -0,0 +1,33 @@ +# Architecture + +`mongod` and `mongot` work together to provide full text and vector search capabilities. While `mongod` continues to store and manage your application data, mongot is responsible for building search indexes and executing search queries. The two processes run alongside each other and communicate internally to keep search indexes synchronized with the underlying data. + +![image](_images/vector-search.png) + +## Components + +| **Component** | **Description** | +|-----------|-------------| +| `Application` | Sends vector search requests using the `$vectorSearch` aggregation stage. | +| `mongod` | Stores application data, manages vector search indexes, forwards vector search requests to `mongot`, retrieves matching documents, and returns the final results. | +| `mongos` | Routes vector search requests to the appropriate shard in sharded deployments. | +| `mongot` | Builds and maintains vector indexes, synchronizes them with data stored in `mongod`, performs nearest-neighbor searches, and returns matching document identifiers with similarity scores. | +| Vector indexes | Specialized indexes maintained by `mongot` to efficiently perform semantic similarity searches over vector embeddings. | + +## How vector search works + +The following steps describe how a vector search request is processed: +{.power-number} + +1. The application converts the search query into a vector embedding using an embedding model. +2. The application submits the vector search request to `mongod` or `mongos` using the `$vectorSearch` aggregation stage. +3. `mongod` forwards the vector search portion of the request to `mongot`. +4. `mongot` searches the vector index for the nearest matching embeddings. The vector indexes are continuously synchronized with the data stored in mongod, ensuring that search results reflect the latest changes. +5. `mongot` returns the matching document identifiers and similarity scores to `mongod`. +6. `mongod` retrieves the corresponding documents from the database, applies any remaining aggregation pipeline stages, and returns the final results to the application. + +## Data synchronization +`mongot` does not store the primary copy of your data. Instead, it maintains vector indexes that are synchronized with the collections stored in `mongod`. Whenever documents are inserted, updated, or deleted, the corresponding vector indexes are updated automatically. This synchronization ensures that vector search queries operate on current data without requiring manual index maintenance. + + +