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 01/96] 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 02/96] 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 03/96] 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 04/96] 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. + + + From b5cb9bd597349fc4ccad9cf3cd9c6a75a09ba0bd Mon Sep 17 00:00:00 2001 From: rasika-chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Mon, 13 Jul 2026 13:45:21 +0530 Subject: [PATCH 05/96] added files for compatibility and architecture --- docs/vector-search-compatibility.md | 29 +++++++++++++++++++++++++++++ mkdocs-base.yml | 2 ++ 2 files changed, 31 insertions(+) create mode 100644 docs/vector-search-compatibility.md diff --git a/docs/vector-search-compatibility.md b/docs/vector-search-compatibility.md new file mode 100644 index 000000000..286bd1034 --- /dev/null +++ b/docs/vector-search-compatibility.md @@ -0,0 +1,29 @@ +# System requirements and compatibility + +Before deploying Vector Search Percona Server for MongoDB (PSMDB), ensure that your environment meets the software, hardware, and deployment requirements for `mongot`. + +!!! info "Important" + The requirements listed below provide the minimum supported configuration. Production environments that handle large collections or high search traffic typically require additional CPU, memory, and storage resources. + +## Version compatibility + +`mongot` requires a supported MongoDB deployment running version 8.3 or later. Ensure that the `mongot` version matches the version of MongoDB deployed in your environment. + +## Operating system support + +`mongot` is supported on Linux systems running one of the following processor architectures: + +- x86_64 (64-bit x86) +- ARM64 (AArch64) + +Verify that your operating system and architecture are supported by the current release of Percona Server for MongoDB before deployment. + +## Memory requirements + +A minimum of 4 GB of RAM is required to run `mongot`. + +Search indexes are maintained in memory whenever possible to improve query performance. Deployments with large collections, high-dimensional vectors, or multiple search indexes may require significantly more memory than the minimum requirement. + +## Storage recommendations + +Although `mongot` can run on any supported storage device, solid-state drives (SSDs) are strongly recommended for production deployments. diff --git a/mkdocs-base.yml b/mkdocs-base.yml index ba078347e..7113382c7 100644 --- a/mkdocs-base.yml +++ b/mkdocs-base.yml @@ -202,6 +202,8 @@ nav: - "Percona Memory Engine": "inmemory.md" - Search: - overview-search.md + - vector-search-architecture.md + - vector-search-compatibility.md - Backup: - "Hot Backup": "hot-backup.md" - backup-cursor.md From 8b1200e921465712702a04c790e0e594d95bb49c Mon Sep 17 00:00:00 2001 From: rasika-chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Mon, 13 Jul 2026 13:53:16 +0530 Subject: [PATCH 06/96] added install mongot --- docs/install-mongot.md | 0 mkdocs-base.yml | 1 + 2 files changed, 1 insertion(+) create mode 100644 docs/install-mongot.md diff --git a/docs/install-mongot.md b/docs/install-mongot.md new file mode 100644 index 000000000..e69de29bb diff --git a/mkdocs-base.yml b/mkdocs-base.yml index 7113382c7..5d700ff4b 100644 --- a/mkdocs-base.yml +++ b/mkdocs-base.yml @@ -204,6 +204,7 @@ nav: - overview-search.md - vector-search-architecture.md - vector-search-compatibility.md + - install-mongot.md - Backup: - "Hot Backup": "hot-backup.md" - backup-cursor.md From 91200d3bc910899c000112947191fbab05b0c7f7 Mon Sep 17 00:00:00 2001 From: rasika-chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Mon, 13 Jul 2026 14:29:40 +0530 Subject: [PATCH 07/96] Update install-mongot.md --- docs/install-mongot.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/docs/install-mongot.md b/docs/install-mongot.md index e69de29bb..b52a4bcfb 100644 --- a/docs/install-mongot.md +++ b/docs/install-mongot.md @@ -0,0 +1,11 @@ +# Install and enable mongot + +Before deploying vector search for PSMDB, ensure that you have: + +- Percona Server for MongoDB 8.3 or later installed. +- A running standalone, replica set, or sharded deployment. +- Administrative privileges to install and configure `mongot`. +- A supported Linux operating system. + +For more details, refer to the [vector search compatibility](vector-search-compatibility.md) section. + From ff3c7597f1e2af28daeece8f5c6f8c4f9b7b0482 Mon Sep 17 00:00:00 2001 From: rasika-chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Mon, 13 Jul 2026 16:09:08 +0530 Subject: [PATCH 08/96] Update install-mongot.md --- docs/install-mongot.md | 50 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 49 insertions(+), 1 deletion(-) diff --git a/docs/install-mongot.md b/docs/install-mongot.md index b52a4bcfb..f94f15e91 100644 --- a/docs/install-mongot.md +++ b/docs/install-mongot.md @@ -5,7 +5,55 @@ Before deploying vector search for PSMDB, ensure that you have: - Percona Server for MongoDB 8.3 or later installed. - A running standalone, replica set, or sharded deployment. - Administrative privileges to install and configure `mongot`. -- A supported Linux operating system. +- A supported **Linux operating system**. For more details, refer to the [vector search compatibility](vector-search-compatibility.md) section. +## Procedure + +### Install from binary tarball + +Follow these steps to install `mongot` from tarball: +{.power-number} + +1. Download the `mongot` tarball. + + Click the following link to download the Search in tarball. + + === "ARM Architectures" + + For `ARM architectures`, use [ARM-compatible tarball :octicons-link-external-16:](https://downloads.mongodb.org/mongodb-search-community/0.53.0/mongot_community_0.53.0_linux_aarch64.tgz){:target="_blank"}. + + === "AMD x86_64 Architectures" + + For `AMD x86_64` architectures, use [AMD x86-64-compatible tarball :octicons-link-external-16:](https://downloads.mongodb.org/mongodb-search-community/0.53.0/mongot_community_0.53.0_linux_x86_64.tgz){:target="_blank"}. + + +2. Extract the `mongot` tarball. + + Run the following command to extract the tarball: + + === "ARM Architectures" + + ```sh + tar -zxvf mongot_community_0.53.0_linux_aarch64.tgz + ``` + + === "AMD x86_64 Architectures" + + ```sh + tar -zxvf mongot_community_0.53.0_linux_aarch64.tgz + ``` + + The tarball contains a sample configuration file, the `mongot` launcher script, and MongoDB Search and Vector Search license information. + +3. Configure `mongod` to communicate with `mongot`. + + If you have an existing replica set that you want to use, configure the following `mongod` parameters to route Search and MongoDB Vector Search queries and manage indexes. + + + + + + + From 3f49f264ed5483e3dca55f0d2b05875625eead7e Mon Sep 17 00:00:00 2001 From: rasika-chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Tue, 14 Jul 2026 12:49:10 +0530 Subject: [PATCH 09/96] updated config files --- docs/install-mongot.md | 2 +- mkdocs-base.yml | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/docs/install-mongot.md b/docs/install-mongot.md index f94f15e91..e2034f455 100644 --- a/docs/install-mongot.md +++ b/docs/install-mongot.md @@ -1,4 +1,4 @@ -# Install and enable mongot +# Install mongot on Linux Before deploying vector search for PSMDB, ensure that you have: diff --git a/mkdocs-base.yml b/mkdocs-base.yml index 5d700ff4b..67cdda1d5 100644 --- a/mkdocs-base.yml +++ b/mkdocs-base.yml @@ -204,7 +204,11 @@ nav: - overview-search.md - vector-search-architecture.md - vector-search-compatibility.md - - install-mongot.md + - Install mongot + - install-mongot-linux.md + - install-mongot-docker.md + - Configure mongot + - configure-mongot.md - Backup: - "Hot Backup": "hot-backup.md" - backup-cursor.md From 6fdf6c051f99e611adc5854d23d860d85344e4ee Mon Sep 17 00:00:00 2001 From: rasika-chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Tue, 14 Jul 2026 12:52:26 +0530 Subject: [PATCH 10/96] Update mkdocs-base.yml --- mkdocs-base.yml | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/mkdocs-base.yml b/mkdocs-base.yml index 67cdda1d5..82f9f7654 100644 --- a/mkdocs-base.yml +++ b/mkdocs-base.yml @@ -204,11 +204,9 @@ nav: - overview-search.md - vector-search-architecture.md - vector-search-compatibility.md - - Install mongot - - install-mongot-linux.md - - install-mongot-docker.md - - Configure mongot - - configure-mongot.md + - install-mongot-linux.md + - install-mongot-docker.md + - configure-mongot.md - Backup: - "Hot Backup": "hot-backup.md" - backup-cursor.md From 450ce29f174c32eefaa968306336c72b99ee5904 Mon Sep 17 00:00:00 2001 From: rasika-chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Tue, 14 Jul 2026 16:07:12 +0530 Subject: [PATCH 11/96] updated files --- docs/configure-mongot.md | 29 +++++++++++++++++++++++++++++ docs/install-mongot.md | 2 +- 2 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 docs/configure-mongot.md diff --git a/docs/configure-mongot.md b/docs/configure-mongot.md new file mode 100644 index 000000000..c48de5820 --- /dev/null +++ b/docs/configure-mongot.md @@ -0,0 +1,29 @@ +# Configure mongot + +After installing `mongot`, configure it to connect to the Percona Server for MongoDB replica set, store search indexes, and accept search requests from `mongod`. + +Vector Search requires configuration on both sides: + +- `mongot` must be able to connect to the replica set and synchronize data. +- `mongod` must know where to send search queries and search-index management requests. + +!!! note + The examples in this section use a single-node test environment with `mongod` listening on port **27017** and `mongot` listening on port **27028**. Replace the host names, ports, paths, and credentials with values that are applicable for your deployment. + +## Before you begin + +- PSMDB is running as an initialized replica set. +- Authentication is enabled. +- The `mongot` binary is installed. +- The user running `mongot` can write to the search data and log directories. +- The host running `mongot` can connect to the replica set. +- The required ports are available. + +## Procedure + + + + + + + diff --git a/docs/install-mongot.md b/docs/install-mongot.md index e2034f455..463c536f1 100644 --- a/docs/install-mongot.md +++ b/docs/install-mongot.md @@ -1,4 +1,4 @@ -# Install mongot on Linux +# Install mongot Before deploying vector search for PSMDB, ensure that you have: From be0d87cb33955d10410083592f43453adf417290 Mon Sep 17 00:00:00 2001 From: rasika-chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Wed, 15 Jul 2026 12:36:13 +0530 Subject: [PATCH 12/96] Update install-mongot.md --- docs/install-mongot.md | 204 +++++++++++++++++++++++++++++++++++++---- 1 file changed, 186 insertions(+), 18 deletions(-) diff --git a/docs/install-mongot.md b/docs/install-mongot.md index 463c536f1..0fef0e93b 100644 --- a/docs/install-mongot.md +++ b/docs/install-mongot.md @@ -11,45 +11,213 @@ For more details, refer to the [vector search compatibility](vector-search-compa ## Procedure -### Install from binary tarball +=== "Tarballs" -Follow these steps to install `mongot` from tarball: -{.power-number} + ### Install mongot from tarballs -1. Download the `mongot` tarball. + Follow these steps to install `mongot` from tarball: + {.power-number} - Click the following link to download the Search in tarball. + 1. Download the `mongot` tarball. - === "ARM Architectures" + Click the following link to download the Search in tarball. - For `ARM architectures`, use [ARM-compatible tarball :octicons-link-external-16:](https://downloads.mongodb.org/mongodb-search-community/0.53.0/mongot_community_0.53.0_linux_aarch64.tgz){:target="_blank"}. + === "ARM Architectures" - === "AMD x86_64 Architectures" + For `ARM architectures`, use [ARM-compatible tarball :octicons-link-external-16:](https://downloads.mongodb.org/mongodb-search-community/0.53.0/mongot_community_0.53.0_linux_aarch64.tgz){:target="_blank"}. - For `AMD x86_64` architectures, use [AMD x86-64-compatible tarball :octicons-link-external-16:](https://downloads.mongodb.org/mongodb-search-community/0.53.0/mongot_community_0.53.0_linux_x86_64.tgz){:target="_blank"}. + === "AMD x86_64 Architectures" + For `AMD x86_64` architectures, use [AMD x86-64-compatible tarball :octicons-link-external-16:](https://downloads.mongodb.org/mongodb-search-community/0.53.0/mongot_community_0.53.0_linux_x86_64.tgz){:target="_blank"}. -2. Extract the `mongot` tarball. - Run the following command to extract the tarball: + 2. Extract the `mongot` tarball. - === "ARM Architectures" + Run the following command to extract the tarball: + + === "ARM Architectures" + + ```sh + tar -zxvf mongot_community_0.53.0_linux_aarch64.tgz + ``` + + === "AMD x86_64 Architectures" + + ```sh + tar -zxvf mongot_community_0.53.0_linux_aarch64.tgz + ``` + + The tarball contains a sample configuration file, the `mongot` launcher script, and MongoDB Search and Vector Search license information. + + 3. Configure `mongod` to communicate with `mongot`. + + Configure the following `mongod` parameters to route Search and MongoDB Vector Search queries and manage indexes. + + |**Parameter**|**Description**| + |--------------|---------------| + |`searchIndexManagementHostAndPort`|Specifies the host and port of the `mongot` service used for search index management operations.| + |`mongotHost`|Specifies the host and port of the mongot service used to process search queries. This value must match `searchIndexManagementHostAndPort`.| + |`skipAuthenticationToSearchIndexManagementServer`|Specifies the host and port of the `mongot` service used for search index management operations.| + |`useGrpcForSearch`|Enables or disables gRPC communication between `mongod` and `mongot` for MongoDB Search operations.| + + ??? example "Example: mongod config" + ```sh + setParameter: + searchIndexManagementHostAndPort: localhost:27028 + mongotHost: localhost:27028 + skipAuthenticationToSearchIndexManagementServer: false + useGrpcForSearch: true + ``` + + 4. Create a user for the `mongot` process on your PSMDB deployment. + + `mongot` must be able to connect to your PSMDB deployment through a user with the `searchCoordinator` role. + + a. Connect to `mongosh` as the admin user. + + ```sh + mongosh --port 27017 -u -p + ``` + + b. Connect to the admin database. + + Run the following command to connect to the admin database: + + ```sh + use admin + ``` + + c. Create your `mongot` user. + + To create a user with the searchCoordinator role: + + - Replace with a username for your mongot user + + - Replace with the password that you specify in your passwordFile in the next step + + - Run the following command: + + ```sh + db.createUser( + { + user: , + pwd: , + roles: [ "searchCoordinator"] + } + ) + + 5. Prepare `mongot` directories + + ```sh + mkdir -p /var/lib/mongot /etc/mongot /opt/mongot +chown mongod: /var/lib/mongot /etc/mongot /opt/mongot +chmod 750 /etc/mongot + ``` + + 4. Create the `mongot` configuration file: + + The tarball contains the following sample configuration file, `config.default.yml`, with the default `mongot` settings. You can modify the settings for your deployment: + + ??? example "Config file" + + ```yaml + tee /etc/mongot/config.yml <" > /etc/mongot/mongot.passwd + chmod 600 /etc/mongot/mongot.passwd + chown mongod: /etc/mongot/mongot.passwd + ``` + + 6. Copy `mongot` to the installation directory: + + ```sh + cp -a mongot-community/* /opt/mongot/ + chown -R mongod: /opt/mongot + ``` + + 7. Create `systemd` unit file for `mongot`: ```sh - tar -zxvf mongot_community_0.53.0_linux_aarch64.tgz + tee /etc/systemd/system/mongot.service < Date: Wed, 15 Jul 2026 12:39:57 +0530 Subject: [PATCH 13/96] Update mkdocs-base.yml --- mkdocs-base.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/mkdocs-base.yml b/mkdocs-base.yml index 82f9f7654..5c90c2626 100644 --- a/mkdocs-base.yml +++ b/mkdocs-base.yml @@ -204,8 +204,7 @@ nav: - overview-search.md - vector-search-architecture.md - vector-search-compatibility.md - - install-mongot-linux.md - - install-mongot-docker.md + - install-mongot.md - configure-mongot.md - Backup: - "Hot Backup": "hot-backup.md" From 14d389e8323a31201211fcaa0dfa27e6234c6b23 Mon Sep 17 00:00:00 2001 From: rasika-chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Wed, 15 Jul 2026 12:45:05 +0530 Subject: [PATCH 14/96] Update install-mongot.md --- docs/install-mongot.md | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/docs/install-mongot.md b/docs/install-mongot.md index 0fef0e93b..a2a23a40f 100644 --- a/docs/install-mongot.md +++ b/docs/install-mongot.md @@ -20,8 +20,6 @@ For more details, refer to the [vector search compatibility](vector-search-compa 1. Download the `mongot` tarball. - Click the following link to download the Search in tarball. - === "ARM Architectures" For `ARM architectures`, use [ARM-compatible tarball :octicons-link-external-16:](https://downloads.mongodb.org/mongodb-search-community/0.53.0/mongot_community_0.53.0_linux_aarch64.tgz){:target="_blank"}. @@ -60,14 +58,14 @@ For more details, refer to the [vector search compatibility](vector-search-compa |`skipAuthenticationToSearchIndexManagementServer`|Specifies the host and port of the `mongot` service used for search index management operations.| |`useGrpcForSearch`|Enables or disables gRPC communication between `mongod` and `mongot` for MongoDB Search operations.| - ??? example "Example: mongod config" - ```sh - setParameter: - searchIndexManagementHostAndPort: localhost:27028 - mongotHost: localhost:27028 - skipAuthenticationToSearchIndexManagementServer: false - useGrpcForSearch: true - ``` + ??? example "Example: mongod config" + ```sh + setParameter: + searchIndexManagementHostAndPort: localhost:27028 + mongotHost: localhost:27028 + skipAuthenticationToSearchIndexManagementServer: false + useGrpcForSearch: true + ``` 4. Create a user for the `mongot` process on your PSMDB deployment. From 645ac283bb7845b6fa185e0d711ca9ebc10bb39d Mon Sep 17 00:00:00 2001 From: Rasika Chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Wed, 15 Jul 2026 12:45:52 +0530 Subject: [PATCH 15/96] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- docs/vector-search-architecture.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/vector-search-architecture.md b/docs/vector-search-architecture.md index ca48ddc4e..dedebd916 100644 --- a/docs/vector-search-architecture.md +++ b/docs/vector-search-architecture.md @@ -1,6 +1,6 @@ # 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. +`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) From ada5b26458db4bc0d133abb061c3951c253115f5 Mon Sep 17 00:00:00 2001 From: Rasika Chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Wed, 15 Jul 2026 12:46:14 +0530 Subject: [PATCH 16/96] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- docs/vector-search-architecture.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/vector-search-architecture.md b/docs/vector-search-architecture.md index dedebd916..3f9c141b3 100644 --- a/docs/vector-search-architecture.md +++ b/docs/vector-search-architecture.md @@ -22,7 +22,7 @@ The following steps describe how a vector search request is processed: 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. +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. From dfbdadb536117e1ed89b229028de17f44751ead4 Mon Sep 17 00:00:00 2001 From: Rasika Chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Wed, 15 Jul 2026 12:46:42 +0530 Subject: [PATCH 17/96] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- docs/vector-search-compatibility.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/vector-search-compatibility.md b/docs/vector-search-compatibility.md index 286bd1034..c0d26a7c7 100644 --- a/docs/vector-search-compatibility.md +++ b/docs/vector-search-compatibility.md @@ -1,6 +1,6 @@ # System requirements and compatibility -Before deploying Vector Search Percona Server for MongoDB (PSMDB), ensure that your environment meets the software, hardware, and deployment requirements for `mongot`. +Before deploying Vector Search in Percona Server for MongoDB (PSMDB), ensure that your environment meets the software, hardware, and deployment requirements for `mongot`. !!! info "Important" The requirements listed below provide the minimum supported configuration. Production environments that handle large collections or high search traffic typically require additional CPU, memory, and storage resources. From bf0c3b316036ecfcb870cfb5215544df68981f7d Mon Sep 17 00:00:00 2001 From: Rasika Chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Wed, 15 Jul 2026 12:47:02 +0530 Subject: [PATCH 18/96] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- docs/install-mongot.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/install-mongot.md b/docs/install-mongot.md index a2a23a40f..1ae70dd3c 100644 --- a/docs/install-mongot.md +++ b/docs/install-mongot.md @@ -187,6 +187,7 @@ chmod 750 /etc/mongot 8. Adjust the permissions and SELinux security labels (contexts): ```sh + chown mongod:mongod /etc/mongot/config.yml chmod 600 /etc/mongot/config.yml restorecon -Rv /opt/mongot ``` From 636d413225cf9bf9e1e68cb64c4f5391f59bd570 Mon Sep 17 00:00:00 2001 From: Rasika Chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Wed, 15 Jul 2026 12:47:21 +0530 Subject: [PATCH 19/96] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- docs/install-mongot.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/install-mongot.md b/docs/install-mongot.md index 1ae70dd3c..fc9a24cb1 100644 --- a/docs/install-mongot.md +++ b/docs/install-mongot.md @@ -108,8 +108,8 @@ For more details, refer to the [vector search compatibility](vector-search-compa ```sh mkdir -p /var/lib/mongot /etc/mongot /opt/mongot -chown mongod: /var/lib/mongot /etc/mongot /opt/mongot -chmod 750 /etc/mongot + chown -R mongod:mongod /var/lib/mongot /etc/mongot /opt/mongot + chmod 750 /etc/mongot ``` 4. Create the `mongot` configuration file: From 5d01d37db7b0196a2b8ecea3924c4cd8c4e4eaa9 Mon Sep 17 00:00:00 2001 From: Rasika Chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Wed, 15 Jul 2026 12:47:42 +0530 Subject: [PATCH 20/96] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- docs/install-mongot.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/install-mongot.md b/docs/install-mongot.md index fc9a24cb1..2020f02e7 100644 --- a/docs/install-mongot.md +++ b/docs/install-mongot.md @@ -158,7 +158,7 @@ For more details, refer to the [vector search compatibility](vector-search-compa ```sh cp -a mongot-community/* /opt/mongot/ - chown -R mongod: /opt/mongot + chown -R mongod:mongod /opt/mongot ``` 7. Create `systemd` unit file for `mongot`: From 1bd8a6f8428fcd180d5cb7db1c070e5e4f939c1d Mon Sep 17 00:00:00 2001 From: Rasika Chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Wed, 15 Jul 2026 12:47:56 +0530 Subject: [PATCH 21/96] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- docs/install-mongot.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/install-mongot.md b/docs/install-mongot.md index 2020f02e7..1e4ee5d9d 100644 --- a/docs/install-mongot.md +++ b/docs/install-mongot.md @@ -151,7 +151,7 @@ For more details, refer to the [vector search compatibility](vector-search-compa ```sh echo "" > /etc/mongot/mongot.passwd chmod 600 /etc/mongot/mongot.passwd - chown mongod: /etc/mongot/mongot.passwd + chown mongod:mongod /etc/mongot/mongot.passwd ``` 6. Copy `mongot` to the installation directory: From 05b69c8805ed5cf44682eb46309c6a67f261876a Mon Sep 17 00:00:00 2001 From: Rasika Chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Wed, 15 Jul 2026 12:48:31 +0530 Subject: [PATCH 22/96] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- docs/vector-search-compatibility.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/vector-search-compatibility.md b/docs/vector-search-compatibility.md index c0d26a7c7..a5b8bd0a9 100644 --- a/docs/vector-search-compatibility.md +++ b/docs/vector-search-compatibility.md @@ -7,7 +7,7 @@ Before deploying Vector Search in Percona Server for MongoDB (PSMDB), ensure tha ## Version compatibility -`mongot` requires a supported MongoDB deployment running version 8.3 or later. Ensure that the `mongot` version matches the version of MongoDB deployed in your environment. +`mongot` requires Percona Server for MongoDB (PSMDB) version 8.3 or later. Ensure that the `mongot` version matches the version of PSMDB deployed in your environment. ## Operating system support From 5c01fcbd9893e94e003f4df16ac9befeba680275 Mon Sep 17 00:00:00 2001 From: Rasika Chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Wed, 15 Jul 2026 12:49:00 +0530 Subject: [PATCH 23/96] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- docs/overview-search.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/overview-search.md b/docs/overview-search.md index cc7cb50d5..f15af6c99 100644 --- a/docs/overview-search.md +++ b/docs/overview-search.md @@ -48,5 +48,5 @@ Use cases include: - Customer support knowledge bases -For information about the search architecture and the eventual consistency model, see Search in Percona Server for MongoDB. +For information about the search architecture and the eventual consistency model, see [Architecture](vector-search-architecture.md). From e3ff9f865aba8560936152a64ac02262052516c7 Mon Sep 17 00:00:00 2001 From: rasika-chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Wed, 15 Jul 2026 12:54:15 +0530 Subject: [PATCH 24/96] formatting fix --- docs/install-mongot.md | 45 +++++++++++++++++++++--------------------- 1 file changed, 23 insertions(+), 22 deletions(-) diff --git a/docs/install-mongot.md b/docs/install-mongot.md index a2a23a40f..62ad86e42 100644 --- a/docs/install-mongot.md +++ b/docs/install-mongot.md @@ -49,16 +49,17 @@ For more details, refer to the [vector search compatibility](vector-search-compa 3. Configure `mongod` to communicate with `mongot`. - Configure the following `mongod` parameters to route Search and MongoDB Vector Search queries and manage indexes. + Configure the following `mongod` parameters to route Search and MongoDB Vector Search queries and manage indexes. - |**Parameter**|**Description**| - |--------------|---------------| - |`searchIndexManagementHostAndPort`|Specifies the host and port of the `mongot` service used for search index management operations.| - |`mongotHost`|Specifies the host and port of the mongot service used to process search queries. This value must match `searchIndexManagementHostAndPort`.| - |`skipAuthenticationToSearchIndexManagementServer`|Specifies the host and port of the `mongot` service used for search index management operations.| - |`useGrpcForSearch`|Enables or disables gRPC communication between `mongod` and `mongot` for MongoDB Search operations.| + |**Parameter**|**Description**| + |--------------|---------------| + |`searchIndexManagementHostAndPort`|Specifies the host and port of the `mongot` service used for search index management operations.| + |`mongotHost`|Specifies the host and port of the mongot service used to process search queries. This value must match `searchIndexManagementHostAndPort`.| + |`skipAuthenticationToSearchIndexManagementServer`|Specifies the host and port of the `mongot` service used for search index management operations.| + |`useGrpcForSearch`|Enables or disables gRPC communication between `mongod` and `mongot` for MongoDB Search operations.| ??? example "Example: mongod config" + ```sh setParameter: searchIndexManagementHostAndPort: localhost:27028 @@ -69,7 +70,7 @@ For more details, refer to the [vector search compatibility](vector-search-compa 4. Create a user for the `mongot` process on your PSMDB deployment. - `mongot` must be able to connect to your PSMDB deployment through a user with the `searchCoordinator` role. + `mongot` must be able to connect to your PSMDB deployment through a user with the `searchCoordinator` role. a. Connect to `mongosh` as the admin user. @@ -95,14 +96,14 @@ For more details, refer to the [vector search compatibility](vector-search-compa - Run the following command: - ```sh - db.createUser( - { - user: , - pwd: , - roles: [ "searchCoordinator"] - } - ) + ```sh + db.createUser( + { + user: , + pwd: , + roles: [ "searchCoordinator"] + } + ) 5. Prepare `mongot` directories @@ -112,7 +113,7 @@ chown mongod: /var/lib/mongot /etc/mongot /opt/mongot chmod 750 /etc/mongot ``` - 4. Create the `mongot` configuration file: + 6. Create the `mongot` configuration file: The tarball contains the following sample configuration file, `config.default.yml`, with the default `mongot` settings. You can modify the settings for your deployment: @@ -154,14 +155,14 @@ chmod 750 /etc/mongot chown mongod: /etc/mongot/mongot.passwd ``` - 6. Copy `mongot` to the installation directory: + 7. Copy `mongot` to the installation directory: ```sh cp -a mongot-community/* /opt/mongot/ chown -R mongod: /opt/mongot ``` - 7. Create `systemd` unit file for `mongot`: + 8. Create `systemd` unit file for `mongot`: ```sh tee /etc/systemd/system/mongot.service < Date: Wed, 15 Jul 2026 12:55:04 +0530 Subject: [PATCH 25/96] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- docs/install-mongot.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/install-mongot.md b/docs/install-mongot.md index 048945953..18a4b5abe 100644 --- a/docs/install-mongot.md +++ b/docs/install-mongot.md @@ -42,7 +42,7 @@ For more details, refer to the [vector search compatibility](vector-search-compa === "AMD x86_64 Architectures" ```sh - tar -zxvf mongot_community_0.53.0_linux_aarch64.tgz + tar -zxvf mongot_community_0.53.0_linux_x86_64.tgz ``` The tarball contains a sample configuration file, the `mongot` launcher script, and MongoDB Search and Vector Search license information. From 01709f2cc4f671a07910b2a6db0b991126730451 Mon Sep 17 00:00:00 2001 From: Rasika Chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Wed, 15 Jul 2026 12:55:50 +0530 Subject: [PATCH 26/96] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- docs/install-mongot.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/install-mongot.md b/docs/install-mongot.md index 18a4b5abe..6320b79a5 100644 --- a/docs/install-mongot.md +++ b/docs/install-mongot.md @@ -187,11 +187,11 @@ For more details, refer to the [vector search compatibility](vector-search-compa ``` 9. Adjust the permissions and SELinux security labels (contexts): - ```sh - chown mongod:mongod /etc/mongot/config.yml - chmod 600 /etc/mongot/config.yml - restorecon -Rv /opt/mongot - ``` + ```sh + chown mongod:mongod /etc/mongot/config.yml + chmod 600 /etc/mongot/config.yml + restorecon -Rv /opt/mongot + ``` 10. Enable and start `mongot`: From ce14b034f15c41c4d9c644ec15fe6b105a9ba126 Mon Sep 17 00:00:00 2001 From: Rasika Chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Wed, 15 Jul 2026 12:56:07 +0530 Subject: [PATCH 27/96] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- docs/install-mongot.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/install-mongot.md b/docs/install-mongot.md index 6320b79a5..f82c0377b 100644 --- a/docs/install-mongot.md +++ b/docs/install-mongot.md @@ -119,7 +119,7 @@ For more details, refer to the [vector search compatibility](vector-search-compa ??? example "Config file" - ```yaml + ```sh tee /etc/mongot/config.yml < Date: Wed, 15 Jul 2026 12:57:55 +0530 Subject: [PATCH 28/96] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- docs/overview-search.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/overview-search.md b/docs/overview-search.md index f15af6c99..26992794a 100644 --- a/docs/overview-search.md +++ b/docs/overview-search.md @@ -1,10 +1,10 @@ # 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. +Starting with Percona Server for MongoDB (PSMDB) 8.3, you can use **Full-text Search** and **Vector Search** with `mongot`, a dedicated search service that runs alongside `mongod`. -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. +You can create search indexes on your collections and use aggregation pipeline stages such as `$search`, `$searchMeta`, and `$vectorSearch` to retrieve relevant results. -`mongot` is included with Percona Server for MongoDB and is available in binary distributions and installation packages. +`mongot` is available via binary distributions and installation packages. ## What is mongot? From 538a98b7dd5ef854ed03f4dbb5c6d23655e4b52b Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 15 Jul 2026 07:31:46 +0000 Subject: [PATCH 29/96] docs: remove broken vector-search image reference --- docs/vector-search-architecture.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/docs/vector-search-architecture.md b/docs/vector-search-architecture.md index 3f9c141b3..35438edaa 100644 --- a/docs/vector-search-architecture.md +++ b/docs/vector-search-architecture.md @@ -2,8 +2,6 @@ `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** | @@ -30,4 +28,3 @@ The following steps describe how a vector search request is processed: `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. - From 0e23b0dd60d67f9b4941d1b0ed50c75921b02f33 Mon Sep 17 00:00:00 2001 From: rasika-chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Wed, 15 Jul 2026 13:02:35 +0530 Subject: [PATCH 30/96] Update install-mongot.md --- docs/install-mongot.md | 46 +++++++++++++++++++++--------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/docs/install-mongot.md b/docs/install-mongot.md index f82c0377b..149ff49b0 100644 --- a/docs/install-mongot.md +++ b/docs/install-mongot.md @@ -70,40 +70,40 @@ For more details, refer to the [vector search compatibility](vector-search-compa 4. Create a user for the `mongot` process on your PSMDB deployment. - `mongot` must be able to connect to your PSMDB deployment through a user with the `searchCoordinator` role. + `mongot` must be able to connect to your PSMDB deployment through a user with the `searchCoordinator` role. - a. Connect to `mongosh` as the admin user. + a. Connect to `mongosh` as the admin user. - ```sh - mongosh --port 27017 -u -p - ``` + ```sh + mongosh --port 27017 -u -p + ``` - b. Connect to the admin database. + b. Connect to the admin database. - Run the following command to connect to the admin database: + Run the following command to connect to the admin database: - ```sh - use admin - ``` + ```sh + use admin + ``` - c. Create your `mongot` user. + c. Create your `mongot` user. - To create a user with the searchCoordinator role: + To create a user with the searchCoordinator role: - - Replace with a username for your mongot user + - Replace with a username for your mongot user - - Replace with the password that you specify in your passwordFile in the next step + - Replace with the password that you specify in your passwordFile in the next step - - Run the following command: + - Run the following command: - ```sh - db.createUser( - { - user: , - pwd: , - roles: [ "searchCoordinator"] - } - ) + ```sh + db.createUser( + { + user: , + pwd: , + roles: [ "searchCoordinator"] + } + ) 5. Prepare `mongot` directories From f9d060b2957247ac9d5f2877c3fe6417ece17370 Mon Sep 17 00:00:00 2001 From: rasika-chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Wed, 15 Jul 2026 13:09:41 +0530 Subject: [PATCH 31/96] Update install-mongot.md --- docs/install-mongot.md | 237 ++++++++++++++++++++--------------------- 1 file changed, 114 insertions(+), 123 deletions(-) diff --git a/docs/install-mongot.md b/docs/install-mongot.md index 149ff49b0..6c3950848 100644 --- a/docs/install-mongot.md +++ b/docs/install-mongot.md @@ -1,175 +1,172 @@ # Install mongot -Before deploying vector search for PSMDB, ensure that you have: +Before deploying Vector Search for Percona Server for MongoDB, ensure that you have: - Percona Server for MongoDB 8.3 or later installed. - A running standalone, replica set, or sharded deployment. - Administrative privileges to install and configure `mongot`. -- A supported **Linux operating system**. +- A supported Linux operating system. -For more details, refer to the [vector search compatibility](vector-search-compatibility.md) section. +For more information, see [Vector Search compatibility](vector-search-compatibility.md). ## Procedure === "Tarballs" - ### Install mongot from tarballs + ### Install mongot from tarballs: - Follow these steps to install `mongot` from tarball: + Follow these steps to install `mongot` from a tarball: {.power-number} - 1. Download the `mongot` tarball. + 1. Download the `mongot` tarball. - === "ARM Architectures" + === "ARM64" - For `ARM architectures`, use [ARM-compatible tarball :octicons-link-external-16:](https://downloads.mongodb.org/mongodb-search-community/0.53.0/mongot_community_0.53.0_linux_aarch64.tgz){:target="_blank"}. + Download the [ARM64 tarball :octicons-link-external-16:](https://downloads.mongodb.org/mongodb-search-community/0.53.0/mongot_community_0.53.0_linux_aarch64.tgz){:target="_blank"}. - === "AMD x86_64 Architectures" + === "AMD64 (x86_64)" - For `AMD x86_64` architectures, use [AMD x86-64-compatible tarball :octicons-link-external-16:](https://downloads.mongodb.org/mongodb-search-community/0.53.0/mongot_community_0.53.0_linux_x86_64.tgz){:target="_blank"}. + Download the [AMD64 tarball :octicons-link-external-16:](https://downloads.mongodb.org/mongodb-search-community/0.53.0/mongot_community_0.53.0_linux_x86_64.tgz){:target="_blank"}. + 2. Extract the tarball. - 2. Extract the `mongot` tarball. - - Run the following command to extract the tarball: - - === "ARM Architectures" + === "ARM64" ```sh tar -zxvf mongot_community_0.53.0_linux_aarch64.tgz ``` - === "AMD x86_64 Architectures" + === "AMD64 (x86_64)" ```sh tar -zxvf mongot_community_0.53.0_linux_x86_64.tgz ``` - The tarball contains a sample configuration file, the `mongot` launcher script, and MongoDB Search and Vector Search license information. + The extracted archive contains the `mongot` binary, a sample configuration file, the `mongot` launcher script, and MongoDB Search and Vector Search license information. 3. Configure `mongod` to communicate with `mongot`. - Configure the following `mongod` parameters to route Search and MongoDB Vector Search queries and manage indexes. + Configure the following `mongod` parameters. - |**Parameter**|**Description**| - |--------------|---------------| - |`searchIndexManagementHostAndPort`|Specifies the host and port of the `mongot` service used for search index management operations.| - |`mongotHost`|Specifies the host and port of the mongot service used to process search queries. This value must match `searchIndexManagementHostAndPort`.| - |`skipAuthenticationToSearchIndexManagementServer`|Specifies the host and port of the `mongot` service used for search index management operations.| - |`useGrpcForSearch`|Enables or disables gRPC communication between `mongod` and `mongot` for MongoDB Search operations.| + | Parameter | Description | + |-----------|-------------| + | `searchIndexManagementHostAndPort` | Specifies the host and port of the `mongot` service used for search index management operations. | + | `mongotHost` | Specifies the host and port of the `mongot` service used to process search queries. This value must match `searchIndexManagementHostAndPort`. | + | `skipAuthenticationToSearchIndexManagementServer` | Enables or disables authentication between `mongod` and `mongot` for search index management operations. | + | `useGrpcForSearch` | Enables or disables gRPC communication between `mongod` and `mongot`. | - ??? example "Example: mongod config" + ??? example "Example: mongod configuration" - ```sh + ```yaml setParameter: - searchIndexManagementHostAndPort: localhost:27028 - mongotHost: localhost:27028 - skipAuthenticationToSearchIndexManagementServer: false - useGrpcForSearch: true - ``` - - 4. Create a user for the `mongot` process on your PSMDB deployment. - - `mongot` must be able to connect to your PSMDB deployment through a user with the `searchCoordinator` role. + searchIndexManagementHostAndPort: localhost:27028 + mongotHost: localhost:27028 + skipAuthenticationToSearchIndexManagementServer: false + useGrpcForSearch: true + ``` - a. Connect to `mongosh` as the admin user. + 4. Create a user for the `mongot` process. - ```sh - mongosh --port 27017 -u -p - ``` + `mongot` must be able to connect to your Percona Server for MongoDB deployment through a user with the `searchCoordinator` role. - b. Connect to the admin database. + a. Connect to `mongosh` as an administrator. - Run the following command to connect to the admin database: + ```sh + mongosh --port 27017 -u -p + ``` - ```sh - use admin - ``` + b. Switch to the `admin` database. - c. Create your `mongot` user. + ```javascript + use admin + ``` - To create a user with the searchCoordinator role: + c. Create the `mongot` user. - - Replace with a username for your mongot user + Replace: - - Replace with the password that you specify in your passwordFile in the next step + - `` with the username for the `mongot` user. + - `` with the password that you will save in the password file in the next step. - - Run the following command: + Then run: - ```sh - db.createUser( - { - user: , - pwd: , - roles: [ "searchCoordinator"] - } - ) + ```javascript + db.createUser({ + user: "", + pwd: "", + roles: ["searchCoordinator"] + }) + ``` - 5. Prepare `mongot` directories + 5. Prepare the required directories. ```sh - mkdir -p /var/lib/mongot /etc/mongot /opt/mongot - chown -R mongod:mongod /var/lib/mongot /etc/mongot /opt/mongot - chmod 750 /etc/mongot + sudo mkdir -p /var/lib/mongot /etc/mongot /opt/mongot + sudo chown -R mongod:mongod /var/lib/mongot /etc/mongot /opt/mongot + sudo chmod 750 /etc/mongot ``` - 6. Create the `mongot` configuration file: + 6. Create the `mongot` configuration file. - The tarball contains the following sample configuration file, `config.default.yml`, with the default `mongot` settings. You can modify the settings for your deployment: + The tarball includes a sample configuration file, `config.default.yml`. Modify it as needed for your deployment. - ??? example "Config file" + ??? example "Example configuration" - ```sh - tee /etc/mongot/config.yml <" > /etc/mongot/mongot.passwd - chmod 600 /etc/mongot/mongot.passwd - chown mongod:mongod /etc/mongot/mongot.passwd + echo "" | sudo tee /etc/mongot/mongot.passwd + sudo chmod 600 /etc/mongot/mongot.passwd + sudo chown mongod:mongod /etc/mongot/mongot.passwd ``` - 7. Copy `mongot` to the installation directory: + 8. Copy the extracted files to the installation directory. ```sh - cp -a mongot-community/* /opt/mongot/ - chown -R mongod:mongod /opt/mongot + sudo cp -a mongot-community/* /opt/mongot/ + sudo chown -R mongod:mongod /opt/mongot ``` - 8. Create `systemd` unit file for `mongot`: + 9. Create the `systemd` service. - ```sh - tee /etc/systemd/system/mongot.service < Date: Wed, 15 Jul 2026 13:31:10 +0530 Subject: [PATCH 32/96] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- docs/overview-search.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/overview-search.md b/docs/overview-search.md index 26992794a..d98b14c4c 100644 --- a/docs/overview-search.md +++ b/docs/overview-search.md @@ -4,7 +4,7 @@ Starting with Percona Server for MongoDB (PSMDB) 8.3, you can use **Full-text Se You can create search indexes on your collections and use aggregation pipeline stages such as `$search`, `$searchMeta`, and `$vectorSearch` to retrieve relevant results. -`mongot` is available via binary distributions and installation packages. +`mongot` is available via binary distributions (tarballs). ## What is mongot? From afc04cd6e7198306031828e60a5d0484e373ef15 Mon Sep 17 00:00:00 2001 From: Rasika Chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Wed, 15 Jul 2026 13:32:03 +0530 Subject: [PATCH 33/96] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- docs/install-mongot.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/install-mongot.md b/docs/install-mongot.md index 6c3950848..785e488bf 100644 --- a/docs/install-mongot.md +++ b/docs/install-mongot.md @@ -147,7 +147,9 @@ For more information, see [Vector Search compatibility](vector-search-compatibil 7. Create the password file. ```sh - echo "" | sudo tee /etc/mongot/mongot.passwd + read -s -p "Enter mongot password: " MONGOT_PASSWORD && echo + printf "%s" "$MONGOT_PASSWORD" | sudo tee /etc/mongot/mongot.passwd > /dev/null + unset MONGOT_PASSWORD sudo chmod 600 /etc/mongot/mongot.passwd sudo chown mongod:mongod /etc/mongot/mongot.passwd ``` From a242dce352b57d47fc6918035856bffe654681ef Mon Sep 17 00:00:00 2001 From: Rasika Chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Wed, 15 Jul 2026 13:35:23 +0530 Subject: [PATCH 34/96] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- docs/install-mongot.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/install-mongot.md b/docs/install-mongot.md index 785e488bf..f476556eb 100644 --- a/docs/install-mongot.md +++ b/docs/install-mongot.md @@ -116,7 +116,7 @@ For more information, see [Vector Search compatibility](vector-search-compatibil syncSource: replicaSet: hostAndPort: 127.0.0.1:27017 - username: searchCoordinator + username: "" passwordFile: /etc/mongot/mongot.passwd tls: false From cf4ec25a8e88c3f679604ac851563ce73384163b Mon Sep 17 00:00:00 2001 From: rasika-chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Wed, 15 Jul 2026 13:39:14 +0530 Subject: [PATCH 35/96] Update install-mongot.md --- docs/install-mongot.md | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/docs/install-mongot.md b/docs/install-mongot.md index f476556eb..2f82dc0c0 100644 --- a/docs/install-mongot.md +++ b/docs/install-mongot.md @@ -3,9 +3,10 @@ Before deploying Vector Search for Percona Server for MongoDB, ensure that you have: - Percona Server for MongoDB 8.3 or later installed. -- A running standalone, replica set, or sharded deployment. +- An initiated replica set with keyfile access control or sharded deployment. - Administrative privileges to install and configure `mongot`. - A supported Linux operating system. +- Install Docker and Docker Compose (For Docker). For more information, see [Vector Search compatibility](vector-search-compatibility.md). @@ -13,7 +14,7 @@ For more information, see [Vector Search compatibility](vector-search-compatibil === "Tarballs" - ### Install mongot from tarballs: + ### Install mongot from tarballs Follow these steps to install `mongot` from a tarball: {.power-number} @@ -116,7 +117,7 @@ For more information, see [Vector Search compatibility](vector-search-compatibil syncSource: replicaSet: hostAndPort: 127.0.0.1:27017 - username: "" + username: searchCoordinator passwordFile: /etc/mongot/mongot.passwd tls: false @@ -147,9 +148,7 @@ For more information, see [Vector Search compatibility](vector-search-compatibil 7. Create the password file. ```sh - read -s -p "Enter mongot password: " MONGOT_PASSWORD && echo - printf "%s" "$MONGOT_PASSWORD" | sudo tee /etc/mongot/mongot.passwd > /dev/null - unset MONGOT_PASSWORD + echo "" | sudo tee /etc/mongot/mongot.passwd sudo chmod 600 /etc/mongot/mongot.passwd sudo chown mongod:mongod /etc/mongot/mongot.passwd ``` @@ -217,4 +216,10 @@ For more information, see [Vector Search compatibility](vector-search-compatibil ```json {"status":"SERVING"} - ``` \ No newline at end of file + ``` + +=== "Docker" + + ### Install mongot from tarballs + + From e19ab36e9298be32a490d2ce74cf32b8904bf30a Mon Sep 17 00:00:00 2001 From: rasika-chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Wed, 15 Jul 2026 14:09:53 +0530 Subject: [PATCH 36/96] Update install-mongot.md --- docs/install-mongot.md | 43 ++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 41 insertions(+), 2 deletions(-) diff --git a/docs/install-mongot.md b/docs/install-mongot.md index 2f82dc0c0..f3c8867bb 100644 --- a/docs/install-mongot.md +++ b/docs/install-mongot.md @@ -6,7 +6,9 @@ Before deploying Vector Search for Percona Server for MongoDB, ensure that you h - An initiated replica set with keyfile access control or sharded deployment. - Administrative privileges to install and configure `mongot`. - A supported Linux operating system. -- Install Docker and Docker Compose (For Docker). +- Docker engine with Compose v2 (if you are installing on Docker). +- `mongosh` installed on the host. + For more information, see [Vector Search compatibility](vector-search-compatibility.md). @@ -220,6 +222,43 @@ For more information, see [Vector Search compatibility](vector-search-compatibil === "Docker" - ### Install mongot from tarballs + ### Install Vector Search with Docker + + !!! info "Important" + - `mongot` syncs data from `mongod` and requires a PSMDB replica set. A standalone deployment doesn't support `mongot`. + - If you want PSMDB Vector Search to automatically generate embeddings for text data in your collection, create endpoint service API keys. For more information, see [Automated Embedding](). + + Follow these steps to install `mongot` from Docker: + {.power-number} + + 1. Pull the `mongot` Docker image. + + ```sh + docker pull mongodb/mongodb-community-search:latest + ``` + 2. Verify the image running on your Docker Desktop: + + ```sh + docker image ls mongodb/mongodb-community-search + ``` + + 3. Create a Docker network. + + To create a docker network for inter-container communication between the database and search containers, run the following command: + + ```sh + docker network create search-community + ``` + + + + + + + + + + + From a4016d0f7559d76bf72176182ec628c06aa2834a Mon Sep 17 00:00:00 2001 From: Rasika Chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Wed, 15 Jul 2026 14:10:14 +0530 Subject: [PATCH 37/96] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- docs/overview-search.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/overview-search.md b/docs/overview-search.md index d98b14c4c..b10354a6f 100644 --- a/docs/overview-search.md +++ b/docs/overview-search.md @@ -8,7 +8,7 @@ You can create search indexes on your collections and use aggregation pipeline s ## 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. +[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: From 7febf598a679d25245e82dff7312146556047e24 Mon Sep 17 00:00:00 2001 From: Rasika Chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Wed, 15 Jul 2026 14:10:31 +0530 Subject: [PATCH 38/96] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- docs/overview-search.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/overview-search.md b/docs/overview-search.md index b10354a6f..70f8838d8 100644 --- a/docs/overview-search.md +++ b/docs/overview-search.md @@ -14,7 +14,7 @@ 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. +- 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. From fb16e2bc484bfb282a79223bbf0ef3df89b571e6 Mon Sep 17 00:00:00 2001 From: rasika-chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Wed, 15 Jul 2026 16:30:27 +0530 Subject: [PATCH 39/96] Update install-mongot.md --- docs/install-mongot.md | 163 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 155 insertions(+), 8 deletions(-) diff --git a/docs/install-mongot.md b/docs/install-mongot.md index f3c8867bb..515c5e4e1 100644 --- a/docs/install-mongot.md +++ b/docs/install-mongot.md @@ -113,7 +113,7 @@ For more information, see [Vector Search compatibility](vector-search-compatibil The tarball includes a sample configuration file, `config.default.yml`. Modify it as needed for your deployment. - ??? example "Example configuration" + ??? example "Example: Configuration file" ```yaml syncSource: @@ -231,25 +231,172 @@ For more information, see [Vector Search compatibility](vector-search-compatibil Follow these steps to install `mongot` from Docker: {.power-number} - 1. Pull the `mongot` Docker image. + 1. Pull the `mongod` Docker image. - ```sh - docker pull mongodb/mongodb-community-search:latest + ```bash + docker pull percona/percona-server-mongodb:8.3.4-1 + ``` + 2. Pull the `mongot` Docker image. + + ```bash + docker pull percona/percona-server-mongodb:1.70.1-1 ``` - 2. Verify the image running on your Docker Desktop: + 3. Verify the downloaded images ```sh - docker image ls mongodb/mongodb-community-search + docker image ls | grep percona-server-mongodb ``` - 3. Create a Docker network. + 4. Create a Docker network. To create a docker network for inter-container communication between the database and search containers, run the following command: ```sh - docker network create search-community + docker network create + ``` + + 5. Create your `mongod` configuration file. + + To create your configuration file, save the following code to `mongod.conf` or your desired location. + + ```yaml + net: + port: 27017 + bindIpAll: true + + replication: + replSetName: rs0 + + setParameter: + searchIndexManagementHostAndPort: mongot-percona-server-mongodb:1.70.1-1:27028 + mongotHost: mongot-percona-server-mongodb:1.70.1-1:27028 + skipAuthenticationToSearchIndexManagementServer: false + useGrpcForSearch: true + searchTLSMode: disabled + ``` + + 6. Start `mongod`. + + - Replace `` with the username you want to specify for your admin user. + + - Replace `` with the password you want to specify for your admin user. + + - Replace `` with the path to the local directory for the mounted volume. + + - Replace `` with the path to the configuration file you created above. + + ```sh + docker run --rm \ + --name mongod \ + -v :/etc/mongod.conf:ro \ + -v :/data/db \ + -p 27017:27017 \ + --network \ + percona/percona-server-mongodb:8.3.4-1 \ + --config /etc/mongod.conf \ + --replSetMember=mongod.:27017 + ``` + + 7. In a new shell, start `mongosh`. + + Run the following command to connect to the `mongod` instance you started on port 27017, replacing and with the username and password you created for your admin user. + + ```sh + docker exec -it mongod mongosh --port 27017 ``` + + 8. Create a user for the `mongot` process on your PSMDB deployment. + + `mongot` must be able to connect to your PSMDB deployment through a user with the `searchCoordinator` role. + + The `searchCoordinator` role grants `readAnyDatabase` privileges and write access to the internal `__mdb_internal_search` database, which `mongot` uses to store index metadata. + + a. Connect `mongosh` as an administrator. + + ```sh + use admin + ``` + + b. Create the `mongot` user. + + Replace: + + - `` with the username for the `mongot` user. + - `` with the password that you will save in the password file in the next step. + + Run the following command: + + ```javascript + db.createUser({ + user: "", + pwd: "", + roles: ["searchCoordinator"] + }) + ``` + + 9. Create the `mongot` configuration file. + + !!! info "Important" + Specify the username that you specified in the previous step as the `syncSource.replicaSet.username`. You must also specify the `passwordFile` that you created in the previous step as the `syncSource.replicaSet.passwordFile`. + + For more information on `mongot` configuration options, see the documentation on [mongot options :octicons-link-external-16:](https://www.mongodb.com/docs/manual/reference/configuration-options/#std-label-mongot-configuration-options){:target="_blank"}. + + ??? example" "Example: Configuration file" + + ```sh + syncSource: + replicaSet: + hostAndPort: "mongod.search-community:27017" + scramAuth: + username: "mongotUser" + passwordFile: "/passwordFile" + authSource: "admin" + tls: + enabled: false + replicationReader: + readPreference: "secondaryPreferred" + + storage: + dataPath: "/data/mongot" + + server: + grpc: + address: "mongot-community.search-community:27028" + tls: + mode: "disabled" + + metrics: + enabled: true + address: "mongot-community.search-community:9946" + + healthCheck: + address: "mongot-community.search-community:8080" + + logging: + verbosity: INFO + ``` + + Save your file to mongot.config or your preferred file location. + + Both containers run on the same search-community Docker network. + + + + + + + + + + + + + + + + + From 18b742ff79a7f3529d56394c5994ac1de66ddfd6 Mon Sep 17 00:00:00 2001 From: rasika-chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Wed, 15 Jul 2026 16:35:44 +0530 Subject: [PATCH 40/96] Update install-mongot.md --- docs/install-mongot.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/install-mongot.md b/docs/install-mongot.md index 515c5e4e1..0158ddb35 100644 --- a/docs/install-mongot.md +++ b/docs/install-mongot.md @@ -378,7 +378,7 @@ For more information, see [Vector Search compatibility](vector-search-compatibil Save your file to mongot.config or your preferred file location. - Both containers run on the same search-community Docker network. + Both containers run on the same Docker network. From 0aff96d21ce782b09778e47597bfe47666a34ef5 Mon Sep 17 00:00:00 2001 From: rasika-chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Wed, 15 Jul 2026 16:56:23 +0530 Subject: [PATCH 41/96] Update install-mongot.md --- docs/install-mongot.md | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/docs/install-mongot.md b/docs/install-mongot.md index 0158ddb35..bbb855988 100644 --- a/docs/install-mongot.md +++ b/docs/install-mongot.md @@ -380,6 +380,34 @@ For more information, see [Vector Search compatibility](vector-search-compatibil Both containers run on the same Docker network. +10. Start the `mongot` process. + + - Replace with the path to the local directory for the mounted volume to store mongot data. + + - Replace with the path to the mongot configuration file that you created in the previous step. + + - Replace with the path to the password file you created. + + ```sh + docker run --rm \ + --name mongot-community \ + -v :/data/mongot \ + -v :/mongot-community/config.default.yml \ + -v :/passwordFile:ro \ + --network search-community \ + -p 8080:8080 \ + -p 9946:9946 \ + mongodb/mongodb-community-search:latest + ``` + +11. Verify the health of the mongot process. + + To verify, send a request by using a HTTP client or curl to the /health endpoint. For example, send a curl request similar to the following sample request: + + + ```sh + curl localhost:8080/health + ``` From 5d198a05adf2074202115faf78069f3cc5f5f228 Mon Sep 17 00:00:00 2001 From: Rasika Chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Wed, 15 Jul 2026 16:58:08 +0530 Subject: [PATCH 42/96] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- docs/install-mongot.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/install-mongot.md b/docs/install-mongot.md index bbb855988..b23d7015e 100644 --- a/docs/install-mongot.md +++ b/docs/install-mongot.md @@ -268,8 +268,8 @@ For more information, see [Vector Search compatibility](vector-search-compatibil replSetName: rs0 setParameter: - searchIndexManagementHostAndPort: mongot-percona-server-mongodb:1.70.1-1:27028 - mongotHost: mongot-percona-server-mongodb:1.70.1-1:27028 + searchIndexManagementHostAndPort: :27028 + mongotHost: :27028 skipAuthenticationToSearchIndexManagementServer: false useGrpcForSearch: true searchTLSMode: disabled From 2048494218538c5b91abd772ea9f4b9256d0b2e6 Mon Sep 17 00:00:00 2001 From: Rasika Chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Wed, 15 Jul 2026 16:58:35 +0530 Subject: [PATCH 43/96] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- docs/overview-search.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/overview-search.md b/docs/overview-search.md index 70f8838d8..819672737 100644 --- a/docs/overview-search.md +++ b/docs/overview-search.md @@ -4,7 +4,7 @@ Starting with Percona Server for MongoDB (PSMDB) 8.3, you can use **Full-text Se You can create search indexes on your collections and use aggregation pipeline stages such as `$search`, `$searchMeta`, and `$vectorSearch` to retrieve relevant results. -`mongot` is available via binary distributions (tarballs). +`mongot` is available via binary distributions (tarballs) and Docker images. ## What is mongot? From 95d7b2c2a556574b50d08f87fc9e01fdc98bd68c Mon Sep 17 00:00:00 2001 From: Rasika Chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Wed, 15 Jul 2026 16:58:50 +0530 Subject: [PATCH 44/96] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- docs/install-mongot.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/install-mongot.md b/docs/install-mongot.md index b23d7015e..2f589397d 100644 --- a/docs/install-mongot.md +++ b/docs/install-mongot.md @@ -313,7 +313,7 @@ For more information, see [Vector Search compatibility](vector-search-compatibil a. Connect `mongosh` as an administrator. - ```sh + ```javascript use admin ``` From 23432b92ce465e61dcc460f69007576b0a174e6e Mon Sep 17 00:00:00 2001 From: Rasika Chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Wed, 15 Jul 2026 16:59:05 +0530 Subject: [PATCH 45/96] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- docs/install-mongot.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/install-mongot.md b/docs/install-mongot.md index 2f589397d..9144a6c57 100644 --- a/docs/install-mongot.md +++ b/docs/install-mongot.md @@ -341,7 +341,7 @@ For more information, see [Vector Search compatibility](vector-search-compatibil For more information on `mongot` configuration options, see the documentation on [mongot options :octicons-link-external-16:](https://www.mongodb.com/docs/manual/reference/configuration-options/#std-label-mongot-configuration-options){:target="_blank"}. - ??? example" "Example: Configuration file" + ??? example "Example: Configuration file" ```sh syncSource: From 214dd2abcdbd5fa35045afaf477d5297d7382fdb Mon Sep 17 00:00:00 2001 From: Rasika Chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Wed, 15 Jul 2026 17:00:14 +0530 Subject: [PATCH 46/96] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- docs/install-mongot.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/install-mongot.md b/docs/install-mongot.md index 9144a6c57..702eea782 100644 --- a/docs/install-mongot.md +++ b/docs/install-mongot.md @@ -226,8 +226,7 @@ For more information, see [Vector Search compatibility](vector-search-compatibil !!! info "Important" - `mongot` syncs data from `mongod` and requires a PSMDB replica set. A standalone deployment doesn't support `mongot`. - - If you want PSMDB Vector Search to automatically generate embeddings for text data in your collection, create endpoint service API keys. For more information, see [Automated Embedding](). - + - If you want PSMDB Vector Search to automatically generate embeddings for text data in your collection, create endpoint service API keys. For more information, see Automated Embedding. Follow these steps to install `mongot` from Docker: {.power-number} From 863ca96237358e9c5c8936b0ba43db593d87c8dc Mon Sep 17 00:00:00 2001 From: Rasika Chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Wed, 15 Jul 2026 17:00:39 +0530 Subject: [PATCH 47/96] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- docs/install-mongot.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/install-mongot.md b/docs/install-mongot.md index 702eea782..422de55b7 100644 --- a/docs/install-mongot.md +++ b/docs/install-mongot.md @@ -293,7 +293,7 @@ For more information, see [Vector Search compatibility](vector-search-compatibil --network \ percona/percona-server-mongodb:8.3.4-1 \ --config /etc/mongod.conf \ - --replSetMember=mongod.:27017 + --replSet rs0 ``` 7. In a new shell, start `mongosh`. From bc1d9ede5d62389a50638e604416ff0b9902c4c4 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 15 Jul 2026 11:32:58 +0000 Subject: [PATCH 48/96] docs: complete Docker mongot run command details --- docs/install-mongot.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/install-mongot.md b/docs/install-mongot.md index 422de55b7..50340b586 100644 --- a/docs/install-mongot.md +++ b/docs/install-mongot.md @@ -387,13 +387,16 @@ For more information, see [Vector Search compatibility](vector-search-compatibil - Replace with the path to the password file you created. + - Replace `` with the Docker network name you created in step 4. + ```sh docker run --rm \ --name mongot-community \ -v :/data/mongot \ -v :/mongot-community/config.default.yml \ -v :/passwordFile:ro \ - --network search-community \ + --network \ + -p 27028:27028 \ -p 8080:8080 \ -p 9946:9946 \ mongodb/mongodb-community-search:latest @@ -433,6 +436,5 @@ For more information, see [Vector Search compatibility](vector-search-compatibil - From f094f5f331968f937785f6aa6fd1aba48913bb05 Mon Sep 17 00:00:00 2001 From: Rasika Chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Wed, 15 Jul 2026 21:23:29 +0530 Subject: [PATCH 49/96] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- docs/install-mongot.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/install-mongot.md b/docs/install-mongot.md index 50340b586..ce71a89dd 100644 --- a/docs/install-mongot.md +++ b/docs/install-mongot.md @@ -342,7 +342,7 @@ For more information, see [Vector Search compatibility](vector-search-compatibil ??? example "Example: Configuration file" - ```sh + ```yaml syncSource: replicaSet: hostAndPort: "mongod.search-community:27017" From e0b2b7b8f600b21fbbd92b038075880417038390 Mon Sep 17 00:00:00 2001 From: Rasika Chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Wed, 15 Jul 2026 21:23:47 +0530 Subject: [PATCH 50/96] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- docs/install-mongot.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/install-mongot.md b/docs/install-mongot.md index ce71a89dd..86b97e267 100644 --- a/docs/install-mongot.md +++ b/docs/install-mongot.md @@ -336,7 +336,7 @@ For more information, see [Vector Search compatibility](vector-search-compatibil 9. Create the `mongot` configuration file. !!! info "Important" - Specify the username that you specified in the previous step as the `syncSource.replicaSet.username`. You must also specify the `passwordFile` that you created in the previous step as the `syncSource.replicaSet.passwordFile`. + Specify the username from the previous step as `syncSource.replicaSet.scramAuth.username`, and provide a `syncSource.replicaSet.scramAuth.passwordFile` that contains that user’s password. For more information on `mongot` configuration options, see the documentation on [mongot options :octicons-link-external-16:](https://www.mongodb.com/docs/manual/reference/configuration-options/#std-label-mongot-configuration-options){:target="_blank"}. From efcb2913e1437af53b980ef786fa99afb1204b27 Mon Sep 17 00:00:00 2001 From: Rasika Chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Wed, 15 Jul 2026 21:24:08 +0530 Subject: [PATCH 51/96] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- docs/install-mongot.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/install-mongot.md b/docs/install-mongot.md index 86b97e267..e06a7319e 100644 --- a/docs/install-mongot.md +++ b/docs/install-mongot.md @@ -119,7 +119,7 @@ For more information, see [Vector Search compatibility](vector-search-compatibil syncSource: replicaSet: hostAndPort: 127.0.0.1:27017 - username: searchCoordinator + username: passwordFile: /etc/mongot/mongot.passwd tls: false From 24ce877500989f5f351c52710094b394b17c029d Mon Sep 17 00:00:00 2001 From: Rasika Chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Wed, 15 Jul 2026 21:24:17 +0530 Subject: [PATCH 52/96] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- docs/install-mongot.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/install-mongot.md b/docs/install-mongot.md index e06a7319e..67e8418fb 100644 --- a/docs/install-mongot.md +++ b/docs/install-mongot.md @@ -150,7 +150,7 @@ For more information, see [Vector Search compatibility](vector-search-compatibil 7. Create the password file. ```sh - echo "" | sudo tee /etc/mongot/mongot.passwd + echo "" | sudo tee /etc/mongot/mongot.passwd > /dev/null sudo chmod 600 /etc/mongot/mongot.passwd sudo chown mongod:mongod /etc/mongot/mongot.passwd ``` From 6578216c66a84f060a2e0da460acd1eaf9682341 Mon Sep 17 00:00:00 2001 From: Rasika Chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Wed, 15 Jul 2026 21:24:53 +0530 Subject: [PATCH 53/96] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- docs/vector-search-compatibility.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/vector-search-compatibility.md b/docs/vector-search-compatibility.md index a5b8bd0a9..a8246a461 100644 --- a/docs/vector-search-compatibility.md +++ b/docs/vector-search-compatibility.md @@ -7,7 +7,7 @@ Before deploying Vector Search in Percona Server for MongoDB (PSMDB), ensure tha ## Version compatibility -`mongot` requires Percona Server for MongoDB (PSMDB) version 8.3 or later. Ensure that the `mongot` version matches the version of PSMDB deployed in your environment. +`mongot` requires Percona Server for MongoDB (PSMDB) version 8.3 or later. Ensure that the `mongot` build you deploy is compatible with the PSMDB version in your environment. ## Operating system support From 81ecc952aa4b193950b4c1bbbf781b4a25b2f42c Mon Sep 17 00:00:00 2001 From: rasika-chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Wed, 15 Jul 2026 21:31:53 +0530 Subject: [PATCH 54/96] format docker section properly --- docs/install-mongot.md | 189 +++++++++++++++++++++-------------------- 1 file changed, 96 insertions(+), 93 deletions(-) diff --git a/docs/install-mongot.md b/docs/install-mongot.md index 67e8418fb..e2814d11c 100644 --- a/docs/install-mongot.md +++ b/docs/install-mongot.md @@ -225,9 +225,10 @@ For more information, see [Vector Search compatibility](vector-search-compatibil ### Install Vector Search with Docker !!! info "Important" - - `mongot` syncs data from `mongod` and requires a PSMDB replica set. A standalone deployment doesn't support `mongot`. - - If you want PSMDB Vector Search to automatically generate embeddings for text data in your collection, create endpoint service API keys. For more information, see Automated Embedding. - Follow these steps to install `mongot` from Docker: + - `mongot` synchronizes data from `mongod` and requires a PSMDB replica set. Standalone deployments are not supported. + - If you want PSMDB Vector Search to automatically generate embeddings for text stored in your collections, create endpoint service API keys. For more information, see **Automated Embedding**. + + Follow these steps to install and configure `mongot` using Docker: {.power-number} 1. Pull the `mongod` Docker image. @@ -235,95 +236,93 @@ For more information, see [Vector Search compatibility](vector-search-compatibil ```bash docker pull percona/percona-server-mongodb:8.3.4-1 ``` + 2. Pull the `mongot` Docker image. ```bash - docker pull percona/percona-server-mongodb:1.70.1-1 + docker pull percona/percona-server-mongodb-mongot:1.70.1-1 ``` - 3. Verify the downloaded images - ```sh + 3. Verify the downloaded images. + + ```bash docker image ls | grep percona-server-mongodb ``` 4. Create a Docker network. - To create a docker network for inter-container communication between the database and search containers, run the following command: + Create a Docker network for communication between the `mongod` and `mongot` containers. - ```sh + ```bash docker network create ``` - 5. Create your `mongod` configuration file. + 5. Create the `mongod` configuration file. - To create your configuration file, save the following code to `mongod.conf` or your desired location. + Save the following configuration as `mongod.conf`. ```yaml net: - port: 27017 - bindIpAll: true + port: 27017 + bindIpAll: true replication: replSetName: rs0 setParameter: - searchIndexManagementHostAndPort: :27028 - mongotHost: :27028 - skipAuthenticationToSearchIndexManagementServer: false - useGrpcForSearch: true - searchTLSMode: disabled + searchIndexManagementHostAndPort: :27028 + mongotHost: :27028 + skipAuthenticationToSearchIndexManagementServer: false + useGrpcForSearch: true + searchTLSMode: disabled ``` 6. Start `mongod`. - - Replace `` with the username you want to specify for your admin user. - - - Replace `` with the password you want to specify for your admin user. - - - Replace `` with the path to the local directory for the mounted volume. + Replace: - - Replace `` with the path to the configuration file you created above. + - `` with the path to the MongoDB data directory. + - `` with the path to the `mongod.conf` file. + - `` with the Docker network created in the previous step. - ```sh + ```bash docker run --rm \ - --name mongod \ - -v :/etc/mongod.conf:ro \ - -v :/data/db \ - -p 27017:27017 \ - --network \ - percona/percona-server-mongodb:8.3.4-1 \ - --config /etc/mongod.conf \ - --replSet rs0 + --name mongod \ + -v :/etc/mongod.conf:ro \ + -v :/data/db \ + -p 27017:27017 \ + --network \ + percona/percona-server-mongodb:8.3.4-1 \ + --config /etc/mongod.conf \ + --replSet rs0 ``` - 7. In a new shell, start `mongosh`. + 7. Connect to the database. - Run the following command to connect to the `mongod` instance you started on port 27017, replacing and with the username and password you created for your admin user. + Open a new terminal and connect to the running `mongod` instance. - ```sh + ```bash docker exec -it mongod mongosh --port 27017 ``` - - 8. Create a user for the `mongot` process on your PSMDB deployment. - `mongot` must be able to connect to your PSMDB deployment through a user with the `searchCoordinator` role. + 8. Create a user for the `mongot` process. - The `searchCoordinator` role grants `readAnyDatabase` privileges and write access to the internal `__mdb_internal_search` database, which `mongot` uses to store index metadata. + `mongot` requires a database user with the `searchCoordinator` role. - a. Connect `mongosh` as an administrator. + The `searchCoordinator` role grants `readAnyDatabase` privileges and write access to the internal `__mdb_internal_search` database, which `mongot` uses to store search index metadata. + + a. Switch to the `admin` database. + + ```javascript + use admin + ``` - ```javascript - use admin - ``` - b. Create the `mongot` user. Replace: - `` with the username for the `mongot` user. - - `` with the password that you will save in the password file in the next step. - - Run the following command: + - `` with the password that you will store in the password file. ```javascript db.createUser({ @@ -336,80 +335,84 @@ For more information, see [Vector Search compatibility](vector-search-compatibil 9. Create the `mongot` configuration file. !!! info "Important" - Specify the username from the previous step as `syncSource.replicaSet.scramAuth.username`, and provide a `syncSource.replicaSet.scramAuth.passwordFile` that contains that user’s password. + Set `syncSource.replicaSet.scramAuth.username` to the user created in the previous step, and set `syncSource.replicaSet.scramAuth.passwordFile` to the password file that contains that user's password. - For more information on `mongot` configuration options, see the documentation on [mongot options :octicons-link-external-16:](https://www.mongodb.com/docs/manual/reference/configuration-options/#std-label-mongot-configuration-options){:target="_blank"}. + For more information about the available configuration options, see the MongoDB documentation for [mongot configuration options :octicons-link-external-16:](https://www.mongodb.com/docs/manual/reference/configuration-options/#std-label-mongot-configuration-options){:target="_blank"}. - ??? example "Example: Configuration file" + ??? example "Example: `mongot.conf`" ```yaml syncSource: - replicaSet: - hostAndPort: "mongod.search-community:27017" - scramAuth: - username: "mongotUser" - passwordFile: "/passwordFile" - authSource: "admin" - tls: - enabled: false - replicationReader: - readPreference: "secondaryPreferred" + replicaSet: + hostAndPort: "mongod:27017" + scramAuth: + username: "mongotUser" + passwordFile: "/passwordFile" + authSource: "admin" + tls: + enabled: false + replicationReader: + readPreference: "secondaryPreferred" storage: - dataPath: "/data/mongot" + dataPath: "/data/mongot" server: grpc: - address: "mongot-community.search-community:27028" - tls: + address: "mongot:27028" + tls: mode: "disabled" metrics: - enabled: true - address: "mongot-community.search-community:9946" + enabled: true + address: "mongot:9946" healthCheck: - address: "mongot-community.search-community:8080" + address: "mongot:8080" logging: - verbosity: INFO - ``` - - Save your file to mongot.config or your preferred file location. + verbosity: INFO + ``` - Both containers run on the same Docker network. + Save the configuration as `mongot.conf` or another preferred file name. -10. Start the `mongot` process. + Both the `mongod` and `mongot` containers must run on the same Docker network. - - Replace with the path to the local directory for the mounted volume to store mongot data. + 10. Start the `mongot` container. - - Replace with the path to the mongot configuration file that you created in the previous step. + Replace: - - Replace with the path to the password file you created. + - `` with the directory used to store search index data. + - `` with the path to the `mongot.conf` file. + - `` with the path to the password file. + - `` with the Docker network created earlier. - - Replace `` with the Docker network name you created in step 4. + ```bash + docker run --rm \ + --name mongot \ + -v :/data/mongot \ + -v :/mongot-community/config.default.yml:ro \ + -v :/passwordFile:ro \ + --network \ + -p 27028:27028 \ + -p 8080:8080 \ + -p 9946:9946 \ + percona/percona-server-mongodb-mongot:1.70.1-1 + ``` - ```sh - docker run --rm \ - --name mongot-community \ - -v :/data/mongot \ - -v :/mongot-community/config.default.yml \ - -v :/passwordFile:ro \ - --network \ - -p 27028:27028 \ - -p 8080:8080 \ - -p 9946:9946 \ - mongodb/mongodb-community-search:latest - ``` + 11. Verify the health of the `mongot` process. -11. Verify the health of the mongot process. + Send a request to the readiness endpoint. - To verify, send a request by using a HTTP client or curl to the /health endpoint. For example, send a curl request similar to the following sample request: + ```bash + curl localhost:8080/health + ``` + If `mongot` is running successfully, the endpoint returns: - ```sh - curl localhost:8080/health - ``` + ```text + SERVING + ``` From e6381028283e773ebafe694c5b3251240851323a Mon Sep 17 00:00:00 2001 From: rasika-chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Thu, 16 Jul 2026 17:32:08 +0530 Subject: [PATCH 55/96] Update install-mongot.md --- docs/install-mongot.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/docs/install-mongot.md b/docs/install-mongot.md index e2814d11c..fc3497427 100644 --- a/docs/install-mongot.md +++ b/docs/install-mongot.md @@ -9,7 +9,6 @@ Before deploying Vector Search for Percona Server for MongoDB, ensure that you h - Docker engine with Compose v2 (if you are installing on Docker). - `mongosh` installed on the host. - For more information, see [Vector Search compatibility](vector-search-compatibility.md). ## Procedure @@ -234,13 +233,13 @@ For more information, see [Vector Search compatibility](vector-search-compatibil 1. Pull the `mongod` Docker image. ```bash - docker pull percona/percona-server-mongodb:8.3.4-1 + docker pull percona/percona-server-mongodb: ``` 2. Pull the `mongot` Docker image. ```bash - docker pull percona/percona-server-mongodb-mongot:1.70.1-1 + docker pull percona/percona-server-mongodb-mongot: ``` 3. Verify the downloaded images. From 5d082abb297ff6e91e3834460d8d0c208cd0b353 Mon Sep 17 00:00:00 2001 From: Rasika Chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Thu, 16 Jul 2026 17:36:00 +0530 Subject: [PATCH 56/96] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- docs/install-mongot.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/install-mongot.md b/docs/install-mongot.md index fc3497427..e7117cd1f 100644 --- a/docs/install-mongot.md +++ b/docs/install-mongot.md @@ -73,15 +73,15 @@ For more information, see [Vector Search compatibility](vector-search-compatibil a. Connect to `mongosh` as an administrator. - ```sh - mongosh --port 27017 -u -p - ``` + ```sh + mongosh --port 27017 -u -p + ``` b. Switch to the `admin` database. - ```javascript - use admin - ``` + ```javascript + use admin + ``` c. Create the `mongot` user. From 0c1502b8b35b1b64b3bdad8f8e74ec3e7634e950 Mon Sep 17 00:00:00 2001 From: Rasika Chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Thu, 16 Jul 2026 17:36:15 +0530 Subject: [PATCH 57/96] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- docs/install-mongot.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/install-mongot.md b/docs/install-mongot.md index e7117cd1f..f62a7cfce 100644 --- a/docs/install-mongot.md +++ b/docs/install-mongot.md @@ -92,13 +92,13 @@ For more information, see [Vector Search compatibility](vector-search-compatibil Then run: - ```javascript - db.createUser({ - user: "", - pwd: "", - roles: ["searchCoordinator"] - }) - ``` + ```javascript + db.createUser({ + user: "", + pwd: "", + roles: ["searchCoordinator"] + }) + ``` 5. Prepare the required directories. From daf67d9508a6f21f34c517dba9b5c3f100d907df Mon Sep 17 00:00:00 2001 From: rasika-chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Fri, 17 Jul 2026 12:12:09 +0530 Subject: [PATCH 58/96] Update install-mongot.md --- docs/install-mongot.md | 71 ++++++++++++++++++++++++++++-------------- 1 file changed, 47 insertions(+), 24 deletions(-) diff --git a/docs/install-mongot.md b/docs/install-mongot.md index f62a7cfce..f30300b00 100644 --- a/docs/install-mongot.md +++ b/docs/install-mongot.md @@ -73,15 +73,15 @@ For more information, see [Vector Search compatibility](vector-search-compatibil a. Connect to `mongosh` as an administrator. - ```sh - mongosh --port 27017 -u -p - ``` + ```sh + mongosh --port 27017 -u -p + ``` b. Switch to the `admin` database. - ```javascript - use admin - ``` + ```javascript + use admin + ``` c. Create the `mongot` user. @@ -92,13 +92,13 @@ For more information, see [Vector Search compatibility](vector-search-compatibil Then run: - ```javascript - db.createUser({ - user: "", - pwd: "", - roles: ["searchCoordinator"] - }) - ``` + ```javascript + db.createUser({ + user: "", + pwd: "", + roles: ["searchCoordinator"] + }) + ``` 5. Prepare the required directories. @@ -250,13 +250,23 @@ For more information, see [Vector Search compatibility](vector-search-compatibil 4. Create a Docker network. - Create a Docker network for communication between the `mongod` and `mongot` containers. + The `mongod` and `mongot` containers must run on the same Docker network so that they can resolve each other by container name. ```bash - docker network create + docker network create ``` - 5. Create the `mongod` configuration file. + 5. Create the password file for the `mongot` user. + + ```sh + echo "" > mongot-password.txt + chmod 400 mongot-password.txt + ``` + + Replace `` with a password of your choice. You use the same password when you create the database user in step 8. + + + 6. Create the `mongod` configuration file. Save the following configuration as `mongod.conf`. @@ -269,14 +279,17 @@ For more information, see [Vector Search compatibility](vector-search-compatibil replSetName: rs0 setParameter: - searchIndexManagementHostAndPort: :27028 - mongotHost: :27028 + searchIndexManagementHostAndPort: mongot:27028 + mongotHost: mongot:27028 skipAuthenticationToSearchIndexManagementServer: false useGrpcForSearch: true searchTLSMode: disabled ``` - 6. Start `mongod`. + The `mongot:27028` address is the container name and gRPC port of the `mongot` container that you start in step 10. You must specify the same address in `mongotHost` and `searchIndexManagementHostAndPort`. + + + 7. Start `mongod`. Replace: @@ -291,18 +304,24 @@ For more information, see [Vector Search compatibility](vector-search-compatibil -v :/data/db \ -p 27017:27017 \ --network \ - percona/percona-server-mongodb:8.3.4-1 \ + percona/percona-server-mongodb: \ --config /etc/mongod.conf \ - --replSet rs0 ``` - 7. Connect to the database. + The container name `mongod` is the hostname that `mongot` uses to reach the database. If you change it, also change the `syncSource.replicaSet.hostAndPort` value in step 6. + To check the server logs, run `docker logs -f mongod`. - Open a new terminal and connect to the running `mongod` instance. + 8. Initiate the replica set. - ```bash + Connect to the running `mongod` instance and initiate the single-node replica set: + + ```sh docker exec -it mongod mongosh --port 27017 ``` + + ```sh + rs.initiate() + ``` 8. Create a user for the `mongot` process. @@ -377,6 +396,10 @@ For more information, see [Vector Search compatibility](vector-search-compatibil Both the `mongod` and `mongot` containers must run on the same Docker network. + The `scramAuth.username` and `passwordFile` values must match the user from step 8 and the password file from step 3. The `mongot` image reads its configuration from `/mongot-community/config.default.yml` inside the container; you mount your file to that path in the next step. + + For the full list of configuration options, see the upstream [mongot configuration options :octicons-link-external-16:](https://www.mongodb.com/docs/manual/reference/configuration-options/#std-label-mongot-configuration-options){:target="_blank"} documentation. + 10. Start the `mongot` container. Replace: From c66aadb9e763ee41c28a64dbad0cb866c0825c19 Mon Sep 17 00:00:00 2001 From: rasika-chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Fri, 17 Jul 2026 12:18:11 +0530 Subject: [PATCH 59/96] Update install-mongot.md --- docs/install-mongot.md | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/docs/install-mongot.md b/docs/install-mongot.md index f30300b00..a8db0c767 100644 --- a/docs/install-mongot.md +++ b/docs/install-mongot.md @@ -263,7 +263,7 @@ For more information, see [Vector Search compatibility](vector-search-compatibil chmod 400 mongot-password.txt ``` - Replace `` with a password of your choice. You use the same password when you create the database user in step 8. + Replace `` with a password of your choice. You use the same password when you create the database user in step 9. 6. Create the `mongod` configuration file. @@ -329,26 +329,26 @@ For more information, see [Vector Search compatibility](vector-search-compatibil The `searchCoordinator` role grants `readAnyDatabase` privileges and write access to the internal `__mdb_internal_search` database, which `mongot` uses to store search index metadata. - a. Switch to the `admin` database. + a. Switch to the `admin` database. - ```javascript - use admin - ``` + ```javascript + use admin + ``` - b. Create the `mongot` user. + b. Create the `mongot` user. - Replace: + Replace: - - `` with the username for the `mongot` user. - - `` with the password that you will store in the password file. + - `` with the username for the `mongot` user. + - `` with the password that you will store in the password file. - ```javascript - db.createUser({ - user: "", - pwd: "", - roles: ["searchCoordinator"] - }) - ``` + ```javascript + db.createUser({ + user: "", + pwd: "", + roles: ["searchCoordinator"] + }) + ``` 9. Create the `mongot` configuration file. @@ -398,7 +398,7 @@ For more information, see [Vector Search compatibility](vector-search-compatibil The `scramAuth.username` and `passwordFile` values must match the user from step 8 and the password file from step 3. The `mongot` image reads its configuration from `/mongot-community/config.default.yml` inside the container; you mount your file to that path in the next step. - For the full list of configuration options, see the upstream [mongot configuration options :octicons-link-external-16:](https://www.mongodb.com/docs/manual/reference/configuration-options/#std-label-mongot-configuration-options){:target="_blank"} documentation. + For the full list of configuration options, see the upstream [mongot configuration options :octicons-link-external-16:](https://www.mongodb.com/docs/manual/reference/configuration-options/#std-label-mongot-configuration-options){:target="_blank"} documentation. 10. Start the `mongot` container. From f8829984303e41b67d7bd81872b11561ca55e7e6 Mon Sep 17 00:00:00 2001 From: Rasika Chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Fri, 17 Jul 2026 12:21:37 +0530 Subject: [PATCH 60/96] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- docs/install-mongot.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/install-mongot.md b/docs/install-mongot.md index a8db0c767..5d7ba340b 100644 --- a/docs/install-mongot.md +++ b/docs/install-mongot.md @@ -323,7 +323,7 @@ For more information, see [Vector Search compatibility](vector-search-compatibil rs.initiate() ``` - 8. Create a user for the `mongot` process. + 9. Create a user for the `mongot` process. `mongot` requires a database user with the `searchCoordinator` role. From 04133d94e3eb36ea0124ed4acabab6f509f27afe Mon Sep 17 00:00:00 2001 From: Rasika Chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Fri, 17 Jul 2026 12:21:48 +0530 Subject: [PATCH 61/96] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- docs/install-mongot.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/install-mongot.md b/docs/install-mongot.md index 5d7ba340b..618356cec 100644 --- a/docs/install-mongot.md +++ b/docs/install-mongot.md @@ -400,7 +400,7 @@ For more information, see [Vector Search compatibility](vector-search-compatibil For the full list of configuration options, see the upstream [mongot configuration options :octicons-link-external-16:](https://www.mongodb.com/docs/manual/reference/configuration-options/#std-label-mongot-configuration-options){:target="_blank"} documentation. - 10. Start the `mongot` container. + 11. Start the `mongot` container. Replace: From dff2373616cbc2338be5ff7f75959413851c4997 Mon Sep 17 00:00:00 2001 From: Rasika Chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Fri, 17 Jul 2026 12:22:03 +0530 Subject: [PATCH 62/96] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- docs/install-mongot.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/install-mongot.md b/docs/install-mongot.md index 618356cec..d14015bd9 100644 --- a/docs/install-mongot.md +++ b/docs/install-mongot.md @@ -305,7 +305,7 @@ For more information, see [Vector Search compatibility](vector-search-compatibil -p 27017:27017 \ --network \ percona/percona-server-mongodb: \ - --config /etc/mongod.conf \ + --config /etc/mongod.conf ``` The container name `mongod` is the hostname that `mongot` uses to reach the database. If you change it, also change the `syncSource.replicaSet.hostAndPort` value in step 6. From 009045ea72e0c822fbdd013982f5057149a7714f Mon Sep 17 00:00:00 2001 From: Rasika Chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Fri, 17 Jul 2026 12:22:20 +0530 Subject: [PATCH 63/96] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- docs/install-mongot.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/docs/install-mongot.md b/docs/install-mongot.md index d14015bd9..08857aaec 100644 --- a/docs/install-mongot.md +++ b/docs/install-mongot.md @@ -85,20 +85,20 @@ For more information, see [Vector Search compatibility](vector-search-compatibil c. Create the `mongot` user. - Replace: + Replace: - - `` with the username for the `mongot` user. - - `` with the password that you will save in the password file in the next step. + - `` with the username for the `mongot` user. + - `` with the password that you will save in the password file in the next step. - Then run: + Then run: - ```javascript - db.createUser({ - user: "", - pwd: "", - roles: ["searchCoordinator"] - }) - ``` + ```javascript + db.createUser({ + user: "", + pwd: "", + roles: ["searchCoordinator"] + }) + ``` 5. Prepare the required directories. From 3b669622276ee3c5229e0319bba9f22498e63614 Mon Sep 17 00:00:00 2001 From: Rasika Chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Fri, 17 Jul 2026 12:22:39 +0530 Subject: [PATCH 64/96] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- docs/install-mongot.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/install-mongot.md b/docs/install-mongot.md index 08857aaec..b01d75702 100644 --- a/docs/install-mongot.md +++ b/docs/install-mongot.md @@ -73,15 +73,15 @@ For more information, see [Vector Search compatibility](vector-search-compatibil a. Connect to `mongosh` as an administrator. - ```sh - mongosh --port 27017 -u -p - ``` + ```sh + mongosh --port 27017 -u -p + ``` b. Switch to the `admin` database. - ```javascript - use admin - ``` + ```javascript + use admin + ``` c. Create the `mongot` user. From e543d04599e9b1e5d5d0fa50b45b490a87a93744 Mon Sep 17 00:00:00 2001 From: Rasika Chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Fri, 17 Jul 2026 12:22:52 +0530 Subject: [PATCH 65/96] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- docs/install-mongot.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/install-mongot.md b/docs/install-mongot.md index b01d75702..8c8d4aa31 100644 --- a/docs/install-mongot.md +++ b/docs/install-mongot.md @@ -419,7 +419,7 @@ For more information, see [Vector Search compatibility](vector-search-compatibil -p 27028:27028 \ -p 8080:8080 \ -p 9946:9946 \ - percona/percona-server-mongodb-mongot:1.70.1-1 + percona/percona-server-mongodb-mongot: ``` 11. Verify the health of the `mongot` process. From dbd10ee9106a1abe9bd6184972d3829fde6b4a71 Mon Sep 17 00:00:00 2001 From: Rasika Chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Fri, 17 Jul 2026 12:23:09 +0530 Subject: [PATCH 66/96] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- docs/install-mongot.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/install-mongot.md b/docs/install-mongot.md index 8c8d4aa31..2a16946db 100644 --- a/docs/install-mongot.md +++ b/docs/install-mongot.md @@ -350,7 +350,7 @@ For more information, see [Vector Search compatibility](vector-search-compatibil }) ``` - 9. Create the `mongot` configuration file. + 10. Create the `mongot` configuration file. !!! info "Important" Set `syncSource.replicaSet.scramAuth.username` to the user created in the previous step, and set `syncSource.replicaSet.scramAuth.passwordFile` to the password file that contains that user's password. From 487cb8e2b238199ce841d9096f362d1b7f094bf4 Mon Sep 17 00:00:00 2001 From: Rasika Chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Fri, 17 Jul 2026 12:23:18 +0530 Subject: [PATCH 67/96] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- docs/install-mongot.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/install-mongot.md b/docs/install-mongot.md index 2a16946db..47babcc92 100644 --- a/docs/install-mongot.md +++ b/docs/install-mongot.md @@ -286,7 +286,7 @@ For more information, see [Vector Search compatibility](vector-search-compatibil searchTLSMode: disabled ``` - The `mongot:27028` address is the container name and gRPC port of the `mongot` container that you start in step 10. You must specify the same address in `mongotHost` and `searchIndexManagementHostAndPort`. + The `mongot:27028` address is the container name and gRPC port of the `mongot` container that you start in step 11. You must specify the same address in `mongotHost` and `searchIndexManagementHostAndPort`. 7. Start `mongod`. From 247e327d5c0375e1af681acad9d534637936f2d4 Mon Sep 17 00:00:00 2001 From: rasika-chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Fri, 17 Jul 2026 12:27:32 +0530 Subject: [PATCH 68/96] Update install-mongot.md --- docs/install-mongot.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/install-mongot.md b/docs/install-mongot.md index 47babcc92..0c5ce5bc9 100644 --- a/docs/install-mongot.md +++ b/docs/install-mongot.md @@ -407,7 +407,7 @@ For more information, see [Vector Search compatibility](vector-search-compatibil - `` with the directory used to store search index data. - `` with the path to the `mongot.conf` file. - `` with the path to the password file. - - `` with the Docker network created earlier. + - `` with the Docker network created earlier. ```bash docker run --rm \ From c4e1b64953aae76ccae0c0bcd8493ca8dd5b9c24 Mon Sep 17 00:00:00 2001 From: rasika-chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Fri, 17 Jul 2026 12:29:16 +0530 Subject: [PATCH 69/96] format fix --- docs/install-mongot.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/docs/install-mongot.md b/docs/install-mongot.md index 0c5ce5bc9..8a2ff7ebe 100644 --- a/docs/install-mongot.md +++ b/docs/install-mongot.md @@ -329,26 +329,26 @@ For more information, see [Vector Search compatibility](vector-search-compatibil The `searchCoordinator` role grants `readAnyDatabase` privileges and write access to the internal `__mdb_internal_search` database, which `mongot` uses to store search index metadata. - a. Switch to the `admin` database. + a. Switch to the `admin` database. ```javascript use admin ``` - b. Create the `mongot` user. + b. Create the `mongot` user. Replace: - - `` with the username for the `mongot` user. - - `` with the password that you will store in the password file. + - `` with the username for the `mongot` user. + - `` with the password that you will store in the password file. - ```javascript - db.createUser({ - user: "", - pwd: "", - roles: ["searchCoordinator"] - }) - ``` + ```javascript + db.createUser({ + user: "", + pwd: "", + roles: ["searchCoordinator"] + }) + ``` 10. Create the `mongot` configuration file. From ba1a617d6f53c7a9a3513c2be8943290ff681b4b Mon Sep 17 00:00:00 2001 From: Rasika Chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Fri, 17 Jul 2026 12:29:40 +0530 Subject: [PATCH 70/96] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- docs/install-mongot.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/install-mongot.md b/docs/install-mongot.md index 8a2ff7ebe..bd304e988 100644 --- a/docs/install-mongot.md +++ b/docs/install-mongot.md @@ -308,7 +308,7 @@ For more information, see [Vector Search compatibility](vector-search-compatibil --config /etc/mongod.conf ``` - The container name `mongod` is the hostname that `mongot` uses to reach the database. If you change it, also change the `syncSource.replicaSet.hostAndPort` value in step 6. + The container name `mongod` is the hostname that `mongot` uses to reach the database. If you change it, also change the `syncSource.replicaSet.hostAndPort` value in step 10. To check the server logs, run `docker logs -f mongod`. 8. Initiate the replica set. From ff2473df5144c3eaedb8bb1dfbdb3dfc6057521d Mon Sep 17 00:00:00 2001 From: Rasika Chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Fri, 17 Jul 2026 12:30:26 +0530 Subject: [PATCH 71/96] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- docs/install-mongot.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/install-mongot.md b/docs/install-mongot.md index bd304e988..c41074787 100644 --- a/docs/install-mongot.md +++ b/docs/install-mongot.md @@ -422,7 +422,7 @@ For more information, see [Vector Search compatibility](vector-search-compatibil percona/percona-server-mongodb-mongot: ``` - 11. Verify the health of the `mongot` process. + 12. Verify the health of the `mongot` process. Send a request to the readiness endpoint. From 54178e3608b5e61c468c39df6956859a60e75e9e Mon Sep 17 00:00:00 2001 From: Rasika Chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Fri, 17 Jul 2026 12:30:50 +0530 Subject: [PATCH 72/96] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- docs/install-mongot.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/install-mongot.md b/docs/install-mongot.md index c41074787..56f602fa6 100644 --- a/docs/install-mongot.md +++ b/docs/install-mongot.md @@ -319,7 +319,7 @@ For more information, see [Vector Search compatibility](vector-search-compatibil docker exec -it mongod mongosh --port 27017 ``` - ```sh + ```javascript rs.initiate() ``` From df012f548587912bd661200206a441832c68328b Mon Sep 17 00:00:00 2001 From: Rasika Chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Fri, 17 Jul 2026 12:31:09 +0530 Subject: [PATCH 73/96] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- docs/install-mongot.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/install-mongot.md b/docs/install-mongot.md index 56f602fa6..c8ce8b3d2 100644 --- a/docs/install-mongot.md +++ b/docs/install-mongot.md @@ -396,7 +396,7 @@ For more information, see [Vector Search compatibility](vector-search-compatibil Both the `mongod` and `mongot` containers must run on the same Docker network. - The `scramAuth.username` and `passwordFile` values must match the user from step 8 and the password file from step 3. The `mongot` image reads its configuration from `/mongot-community/config.default.yml` inside the container; you mount your file to that path in the next step. + The `scramAuth.username` and `passwordFile` values must match the user from step 9 and the password file from step 5. The `mongot` image reads its configuration from `/mongot-community/config.default.yml` inside the container; you mount your file to that path in the next step. For the full list of configuration options, see the upstream [mongot configuration options :octicons-link-external-16:](https://www.mongodb.com/docs/manual/reference/configuration-options/#std-label-mongot-configuration-options){:target="_blank"} documentation. From 6e8f996e3168f2aee3c4eb73a3bd06cbde87c676 Mon Sep 17 00:00:00 2001 From: rasika-chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Fri, 17 Jul 2026 12:37:04 +0530 Subject: [PATCH 74/96] Update install-mongot.md --- docs/install-mongot.md | 82 +++++++++++++++++++++++++----------------- 1 file changed, 50 insertions(+), 32 deletions(-) diff --git a/docs/install-mongot.md b/docs/install-mongot.md index c8ce8b3d2..18eb705b5 100644 --- a/docs/install-mongot.md +++ b/docs/install-mongot.md @@ -250,7 +250,7 @@ For more information, see [Vector Search compatibility](vector-search-compatibil 4. Create a Docker network. - The `mongod` and `mongot` containers must run on the same Docker network so that they can resolve each other by container name. + The `mongod` and `mongot` containers must run on the same Docker network so that they can communicate using their container names. ```bash docker network create @@ -258,13 +258,14 @@ For more information, see [Vector Search compatibility](vector-search-compatibil 5. Create the password file for the `mongot` user. - ```sh - echo "" > mongot-password.txt + Replace `` with a password of your choice. + + ```bash + echo -n "" > mongot-password.txt chmod 400 mongot-password.txt ``` - Replace `` with a password of your choice. You use the same password when you create the database user in step 9. - + The `-n` option prevents a trailing newline from being written to the password file. Use the same password when creating the `mongot` database user in step 9. 6. Create the `mongod` configuration file. @@ -286,8 +287,7 @@ For more information, see [Vector Search compatibility](vector-search-compatibil searchTLSMode: disabled ``` - The `mongot:27028` address is the container name and gRPC port of the `mongot` container that you start in step 11. You must specify the same address in `mongotHost` and `searchIndexManagementHostAndPort`. - + The `mongot:27028` address consists of the Docker container name and the gRPC port exposed by the `mongot` container. Specify the same value for both `searchIndexManagementHostAndPort` and `mongotHost`. 7. Start `mongod`. @@ -295,7 +295,7 @@ For more information, see [Vector Search compatibility](vector-search-compatibil - `` with the path to the MongoDB data directory. - `` with the path to the `mongod.conf` file. - - `` with the Docker network created in the previous step. + - `` with the Docker network created in step 4. ```bash docker run --rm \ @@ -303,59 +303,68 @@ For more information, see [Vector Search compatibility](vector-search-compatibil -v :/etc/mongod.conf:ro \ -v :/data/db \ -p 27017:27017 \ - --network \ + --network \ percona/percona-server-mongodb: \ --config /etc/mongod.conf ``` - The container name `mongod` is the hostname that `mongot` uses to reach the database. If you change it, also change the `syncSource.replicaSet.hostAndPort` value in step 10. - To check the server logs, run `docker logs -f mongod`. + The container name `mongod` becomes the hostname used by `mongot` to connect to the database. If you change the container name, update the `syncSource.replicaSet.hostAndPort` value in the `mongot` configuration file. + + To view the server logs: + + ```bash + docker logs -f mongod + ``` 8. Initiate the replica set. - Connect to the running `mongod` instance and initiate the single-node replica set: + Connect to the running container: - ```sh + ```bash docker exec -it mongod mongosh --port 27017 ``` - + + Initialize the replica set: + ```javascript rs.initiate() ``` - 9. Create a user for the `mongot` process. + Wait until the node becomes the primary replica set member before continuing. + + 9. Create the `mongot` user. `mongot` requires a database user with the `searchCoordinator` role. The `searchCoordinator` role grants `readAnyDatabase` privileges and write access to the internal `__mdb_internal_search` database, which `mongot` uses to store search index metadata. - a. Switch to the `admin` database. + 1. Switch to the `admin` database. ```javascript use admin ``` - b. Create the `mongot` user. + 2. Create the user. Replace: - - `` with the username for the `mongot` user. - - `` with the password that you will store in the password file. + - `` with the username for the `mongot` user. + - `` with the password stored in `mongot-password.txt`. - ```javascript - db.createUser({ + ```javascript + db.createUser({ user: "", pwd: "", roles: ["searchCoordinator"] - }) - ``` + }) + ``` 10. Create the `mongot` configuration file. !!! info "Important" - Set `syncSource.replicaSet.scramAuth.username` to the user created in the previous step, and set `syncSource.replicaSet.scramAuth.passwordFile` to the password file that contains that user's password. + Set `syncSource.replicaSet.scramAuth.username` to the user created in the previous step, and `syncSource.replicaSet.scramAuth.passwordFile` to the password file created in step 5. - For more information about the available configuration options, see the MongoDB documentation for [mongot configuration options :octicons-link-external-16:](https://www.mongodb.com/docs/manual/reference/configuration-options/#std-label-mongot-configuration-options){:target="_blank"}. + For more information about the available configuration options, see the upstream documentation for [mongot configuration options :octicons-link-external-16:](https://www.mongodb.com/docs/manual/reference/configuration-options/#std-label-mongot-configuration-options){:target="_blank"}. ??? example "Example: `mongot.conf`" @@ -392,13 +401,16 @@ For more information, see [Vector Search compatibility](vector-search-compatibil verbosity: INFO ``` - Save the configuration as `mongot.conf` or another preferred file name. + Save the configuration file as `mongot.conf`. + + The `mongod` and `mongot` containers must run on the same Docker network. - Both the `mongod` and `mongot` containers must run on the same Docker network. + Ensure that: - The `scramAuth.username` and `passwordFile` values must match the user from step 9 and the password file from step 5. The `mongot` image reads its configuration from `/mongot-community/config.default.yml` inside the container; you mount your file to that path in the next step. + - `scramAuth.username` matches the user created in step 9. + - `passwordFile` points to the password file created in step 5. - For the full list of configuration options, see the upstream [mongot configuration options :octicons-link-external-16:](https://www.mongodb.com/docs/manual/reference/configuration-options/#std-label-mongot-configuration-options){:target="_blank"} documentation. + The `mongot` container reads its configuration from `/mongot-community/config.default.yml`, which is mounted in the next step. 11. Start the `mongot` container. @@ -407,7 +419,7 @@ For more information, see [Vector Search compatibility](vector-search-compatibil - `` with the directory used to store search index data. - `` with the path to the `mongot.conf` file. - `` with the path to the password file. - - `` with the Docker network created earlier. + - `` with the Docker network created in step 4. ```bash docker run --rm \ @@ -415,13 +427,19 @@ For more information, see [Vector Search compatibility](vector-search-compatibil -v :/data/mongot \ -v :/mongot-community/config.default.yml:ro \ -v :/passwordFile:ro \ - --network \ + --network \ -p 27028:27028 \ -p 8080:8080 \ -p 9946:9946 \ percona/percona-server-mongodb-mongot: ``` + To view the `mongot` logs: + + ```bash + docker logs -f mongot + ``` + 12. Verify the health of the `mongot` process. Send a request to the readiness endpoint. @@ -430,7 +448,7 @@ For more information, see [Vector Search compatibility](vector-search-compatibil curl localhost:8080/health ``` - If `mongot` is running successfully, the endpoint returns: + If `mongot` starts successfully, the endpoint returns: ```text SERVING From 1ad3b6b1ecff9726bee79e8f0ffc6ca42ef5418a Mon Sep 17 00:00:00 2001 From: rasika-chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Fri, 17 Jul 2026 12:52:24 +0530 Subject: [PATCH 75/96] Update install-mongot.md --- docs/install-mongot.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/install-mongot.md b/docs/install-mongot.md index 18eb705b5..d3e694754 100644 --- a/docs/install-mongot.md +++ b/docs/install-mongot.md @@ -233,13 +233,13 @@ For more information, see [Vector Search compatibility](vector-search-compatibil 1. Pull the `mongod` Docker image. ```bash - docker pull percona/percona-server-mongodb: + docker pull percona/percona-server-mongodb: ``` 2. Pull the `mongot` Docker image. ```bash - docker pull percona/percona-server-mongodb-mongot: + docker pull percona/percona-server-mongodb-mongot: ``` 3. Verify the downloaded images. From a3357ac04cdace7115077c35ba8b7db25596cf62 Mon Sep 17 00:00:00 2001 From: rasika-chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Fri, 17 Jul 2026 13:20:13 +0530 Subject: [PATCH 76/96] Update install-mongot.md --- docs/install-mongot.md | 53 ++++++++++++++++++++++++------------------ 1 file changed, 31 insertions(+), 22 deletions(-) diff --git a/docs/install-mongot.md b/docs/install-mongot.md index d3e694754..1d2c2120a 100644 --- a/docs/install-mongot.md +++ b/docs/install-mongot.md @@ -3,11 +3,14 @@ Before deploying Vector Search for Percona Server for MongoDB, ensure that you have: - Percona Server for MongoDB 8.3 or later installed. -- An initiated replica set with keyfile access control or sharded deployment. - Administrative privileges to install and configure `mongot`. - A supported Linux operating system. -- Docker engine with Compose v2 (if you are installing on Docker). -- `mongosh` installed on the host. + +Additional requirements depend on the installation method: + +- **Tarballs** - An initiated replica set with keyfile access control or sharded deployment. `mongosh` installed on the host. + +- **Docker** - Docker engine with Compose v2 installed on the host. For more information, see [Vector Search compatibility](vector-search-compatibility.md). @@ -66,10 +69,15 @@ For more information, see [Vector Search compatibility](vector-search-compatibil skipAuthenticationToSearchIndexManagementServer: false useGrpcForSearch: true ``` + These are startup parameters. Restart `mongod` for the changes to take effect: + ```sh + sudo systemctl restart mongod + ``` + 4. Create a user for the `mongot` process. - `mongot` must be able to connect to your Percona Server for MongoDB deployment through a user with the `searchCoordinator` role. + `mongot` connects to your Percona Server for MongoDB deployment through a user with the `searchCoordinator` role. a. Connect to `mongosh` as an administrator. @@ -98,9 +106,16 @@ For more information, see [Vector Search compatibility](vector-search-compatibil pwd: "", roles: ["searchCoordinator"] }) - ``` + + 5. Create the password file. - 5. Prepare the required directories. + ```sh + echo "" | sudo tee /etc/mongot/mongot.passwd > /dev/null + sudo chmod 600 /etc/mongot/mongot.passwd + sudo chown mongod:mongod /etc/mongot/mongot.passwd + ``` + + 6. Prepare the required directories. ```sh sudo mkdir -p /var/lib/mongot /etc/mongot /opt/mongot @@ -108,7 +123,7 @@ For more information, see [Vector Search compatibility](vector-search-compatibil sudo chmod 750 /etc/mongot ``` - 6. Create the `mongot` configuration file. + 7. Create the `mongot` configuration file. The tarball includes a sample configuration file, `config.default.yml`. Modify it as needed for your deployment. @@ -117,7 +132,7 @@ For more information, see [Vector Search compatibility](vector-search-compatibil ```yaml syncSource: replicaSet: - hostAndPort: 127.0.0.1:27017 + hostAndPort: localhost:27017 username: passwordFile: /etc/mongot/mongot.passwd tls: false @@ -143,16 +158,9 @@ For more information, see [Vector Search compatibility](vector-search-compatibil ``` !!! note + The user that runs `mongot` must have write access to the directory specified by `storage.dataPath`. - Ensure that the directory specified by `storage.dataPath` is writable by the user running `mongot`. - - 7. Create the password file. - - ```sh - echo "" | sudo tee /etc/mongot/mongot.passwd > /dev/null - sudo chmod 600 /etc/mongot/mongot.passwd - sudo chown mongod:mongod /etc/mongot/mongot.passwd - ``` + For the full list of configuration options, see the upstream [mongot configuration options :octicons-link-external-16:](https://www.mongodb.com/docs/manual/reference/configuration-options/#std-label-mongot-configuration-options){:target="_blank"} documentation. 8. Copy the extracted files to the installation directory. @@ -225,7 +233,6 @@ For more information, see [Vector Search compatibility](vector-search-compatibil !!! info "Important" - `mongot` synchronizes data from `mongod` and requires a PSMDB replica set. Standalone deployments are not supported. - - If you want PSMDB Vector Search to automatically generate embeddings for text stored in your collections, create endpoint service API keys. For more information, see **Automated Embedding**. Follow these steps to install and configure `mongot` using Docker: {.power-number} @@ -250,22 +257,24 @@ For more information, see [Vector Search compatibility](vector-search-compatibil 4. Create a Docker network. - The `mongod` and `mongot` containers must run on the same Docker network so that they can communicate using their container names. + The `mongod` and `mongot` containers must run on the same Docker network so that they can communicate using their container names. Use the same `` value when you start both containers. ```bash docker network create ``` + Replace `` with a name for the network, for example `psmdb-search`. 5. Create the password file for the `mongot` user. - Replace `` with a password of your choice. + `mongot` reads the password for its database user from a file. Create the file and restrict its permissions. The `-n` option prevents a trailing newline from being written to the file, which would otherwise become part of the password: + ```bash echo -n "" > mongot-password.txt chmod 400 mongot-password.txt ``` - The `-n` option prevents a trailing newline from being written to the password file. Use the same password when creating the `mongot` database user in step 9. + Replace `` with a password of your choice. You use the same password when you create the `mongot` database user in step 9. 6. Create the `mongod` configuration file. @@ -304,7 +313,7 @@ For more information, see [Vector Search compatibility](vector-search-compatibil -v :/data/db \ -p 27017:27017 \ --network \ - percona/percona-server-mongodb: \ + percona/percona-server-mongodb: \ --config /etc/mongod.conf ``` From 5607a93faa823375974b27ee669a9f65cfb95a81 Mon Sep 17 00:00:00 2001 From: Rasika Chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Fri, 17 Jul 2026 13:50:41 +0530 Subject: [PATCH 77/96] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- docs/install-mongot.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/install-mongot.md b/docs/install-mongot.md index 1d2c2120a..d1143f1ce 100644 --- a/docs/install-mongot.md +++ b/docs/install-mongot.md @@ -440,7 +440,7 @@ For more information, see [Vector Search compatibility](vector-search-compatibil -p 27028:27028 \ -p 8080:8080 \ -p 9946:9946 \ - percona/percona-server-mongodb-mongot: + percona/percona-server-mongodb-mongot: ``` To view the `mongot` logs: From 8fd3cc52523549b074ae74d3d9c5f4a7e871912b Mon Sep 17 00:00:00 2001 From: rasika-chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Fri, 17 Jul 2026 16:29:25 +0530 Subject: [PATCH 78/96] Update install-mongot.md --- docs/install-mongot.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/docs/install-mongot.md b/docs/install-mongot.md index d1143f1ce..6c47bccbd 100644 --- a/docs/install-mongot.md +++ b/docs/install-mongot.md @@ -437,9 +437,6 @@ For more information, see [Vector Search compatibility](vector-search-compatibil -v :/mongot-community/config.default.yml:ro \ -v :/passwordFile:ro \ --network \ - -p 27028:27028 \ - -p 8080:8080 \ - -p 9946:9946 \ percona/percona-server-mongodb-mongot: ``` From e21c1ce6ec56b5ece2a5b50b3a037ef05bf93c23 Mon Sep 17 00:00:00 2001 From: Rasika Chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Fri, 17 Jul 2026 16:29:43 +0530 Subject: [PATCH 79/96] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- docs/install-mongot.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/install-mongot.md b/docs/install-mongot.md index 6c47bccbd..a41dae8e7 100644 --- a/docs/install-mongot.md +++ b/docs/install-mongot.md @@ -110,7 +110,8 @@ For more information, see [Vector Search compatibility](vector-search-compatibil 5. Create the password file. ```sh - echo "" | sudo tee /etc/mongot/mongot.passwd > /dev/null + sudo mkdir -p /etc/mongot + echo -n "" | sudo tee /etc/mongot/mongot.passwd > /dev/null sudo chmod 600 /etc/mongot/mongot.passwd sudo chown mongod:mongod /etc/mongot/mongot.passwd ``` From 561f48b0b9135a561553b1d1f62ff937a0ade972 Mon Sep 17 00:00:00 2001 From: Rasika Chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Fri, 17 Jul 2026 16:30:00 +0530 Subject: [PATCH 80/96] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- docs/install-mongot.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/install-mongot.md b/docs/install-mongot.md index a41dae8e7..3c887fc19 100644 --- a/docs/install-mongot.md +++ b/docs/install-mongot.md @@ -106,6 +106,7 @@ For more information, see [Vector Search compatibility](vector-search-compatibil pwd: "", roles: ["searchCoordinator"] }) + ``` 5. Create the password file. From 236ff5ddf6551ee06d6ba7a1153941134fbd6efd Mon Sep 17 00:00:00 2001 From: rasika-chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Fri, 17 Jul 2026 16:41:20 +0530 Subject: [PATCH 81/96] Update install-mongot.md --- docs/install-mongot.md | 48 ++++++++++++++++++++++++------------------ 1 file changed, 27 insertions(+), 21 deletions(-) diff --git a/docs/install-mongot.md b/docs/install-mongot.md index 3c887fc19..d6a48c815 100644 --- a/docs/install-mongot.md +++ b/docs/install-mongot.md @@ -18,7 +18,7 @@ For more information, see [Vector Search compatibility](vector-search-compatibil === "Tarballs" - ### Install mongot from tarballs + ### Install `mongot` from tarballs Follow these steps to install `mongot` from a tarball: {.power-number} @@ -47,11 +47,11 @@ For more information, see [Vector Search compatibility](vector-search-compatibil tar -zxvf mongot_community_0.53.0_linux_x86_64.tgz ``` - The extracted archive contains the `mongot` binary, a sample configuration file, the `mongot` launcher script, and MongoDB Search and Vector Search license information. + The extracted archive contains the `mongot` binary, the sample configuration file, the `mongot` launcher script, and the MongoDB Search and Vector Search license files. 3. Configure `mongod` to communicate with `mongot`. - Configure the following `mongod` parameters. + Configure the following `mongod` startup parameters. | Parameter | Description | |-----------|-------------| @@ -60,7 +60,7 @@ For more information, see [Vector Search compatibility](vector-search-compatibil | `skipAuthenticationToSearchIndexManagementServer` | Enables or disables authentication between `mongod` and `mongot` for search index management operations. | | `useGrpcForSearch` | Enables or disables gRPC communication between `mongod` and `mongot`. | - ??? example "Example: mongod configuration" + ??? example "Example: `mongod` configuration" ```yaml setParameter: @@ -69,34 +69,35 @@ For more information, see [Vector Search compatibility](vector-search-compatibil skipAuthenticationToSearchIndexManagementServer: false useGrpcForSearch: true ``` - These are startup parameters. Restart `mongod` for the changes to take effect: + + These are startup parameters. Restart `mongod` for the changes to take effect. ```sh sudo systemctl restart mongod ``` - + 4. Create a user for the `mongot` process. - `mongot` connects to your Percona Server for MongoDB deployment through a user with the `searchCoordinator` role. + `mongot` connects to your Percona Server for MongoDB deployment by using a user with the `searchCoordinator` role. - a. Connect to `mongosh` as an administrator. + 1. Connect to `mongosh` as an administrator. ```sh mongosh --port 27017 -u -p ``` - b. Switch to the `admin` database. + 2. Switch to the `admin` database. ```javascript use admin ``` - c. Create the `mongot` user. + 3. Create the `mongot` user. Replace: - `` with the username for the `mongot` user. - - `` with the password that you will save in the password file in the next step. + - `` with the password that you save in the password file in the next step. Then run: @@ -107,7 +108,11 @@ For more information, see [Vector Search compatibility](vector-search-compatibil roles: ["searchCoordinator"] }) ``` +<<<<<<< Updated upstream +======= + +>>>>>>> Stashed changes 5. Create the password file. ```sh @@ -127,9 +132,9 @@ For more information, see [Vector Search compatibility](vector-search-compatibil 7. Create the `mongot` configuration file. - The tarball includes a sample configuration file, `config.default.yml`. Modify it as needed for your deployment. + The tarball includes a sample configuration file named `config.default.yml`. Modify it as needed for your deployment. - ??? example "Example: Configuration file" + ??? example "Example: `config.default.yml`" ```yaml syncSource: @@ -160,9 +165,10 @@ For more information, see [Vector Search compatibility](vector-search-compatibil ``` !!! note - The user that runs `mongot` must have write access to the directory specified by `storage.dataPath`. - For the full list of configuration options, see the upstream [mongot configuration options :octicons-link-external-16:](https://www.mongodb.com/docs/manual/reference/configuration-options/#std-label-mongot-configuration-options){:target="_blank"} documentation. + The user running `mongot` must have write access to the directory specified by `storage.dataPath`. + + For the complete list of configuration options, see the upstream [mongot configuration options :octicons-link-external-16:](https://www.mongodb.com/docs/manual/reference/configuration-options/#std-label-mongot-configuration-options){:target="_blank"} documentation. 8. Copy the extracted files to the installation directory. @@ -173,6 +179,12 @@ For more information, see [Vector Search compatibility](vector-search-compatibil 9. Create the `systemd` service. + Create the following file: + + ```text + /etc/systemd/system/mongot.service + ``` + ```ini [Unit] Description=MongoDB Search (mongot) @@ -195,12 +207,6 @@ For more information, see [Vector Search compatibility](vector-search-compatibil WantedBy=multi-user.target ``` - Save the file as: - - ```text - /etc/systemd/system/mongot.service - ``` - 10. Set the required file permissions and SELinux contexts. ```sh From 15da0c047a51d768752da6dc9c3490a870d91d53 Mon Sep 17 00:00:00 2001 From: rasika-chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Fri, 17 Jul 2026 16:45:41 +0530 Subject: [PATCH 82/96] Update install-mongot.md --- docs/install-mongot.md | 5 ----- 1 file changed, 5 deletions(-) diff --git a/docs/install-mongot.md b/docs/install-mongot.md index d6a48c815..d0e4e7055 100644 --- a/docs/install-mongot.md +++ b/docs/install-mongot.md @@ -108,11 +108,6 @@ For more information, see [Vector Search compatibility](vector-search-compatibil roles: ["searchCoordinator"] }) ``` -<<<<<<< Updated upstream - -======= - ->>>>>>> Stashed changes 5. Create the password file. ```sh From 9f642bd48be29aaedb11cdd8d6422242c6cc9e65 Mon Sep 17 00:00:00 2001 From: rasika-chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Fri, 17 Jul 2026 16:57:33 +0530 Subject: [PATCH 83/96] Update install-mongot.md --- docs/install-mongot.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/install-mongot.md b/docs/install-mongot.md index d0e4e7055..071c75df1 100644 --- a/docs/install-mongot.md +++ b/docs/install-mongot.md @@ -454,7 +454,7 @@ For more information, see [Vector Search compatibility](vector-search-compatibil Send a request to the readiness endpoint. ```bash - curl localhost:8080/health + docker exec mongot curl -s http://mongot:8080/health ``` If `mongot` starts successfully, the endpoint returns: From a7f7010e82252ab7369cf06342d424af2f1e1038 Mon Sep 17 00:00:00 2001 From: rasika-chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Fri, 17 Jul 2026 16:58:40 +0530 Subject: [PATCH 84/96] Update install-mongot.md --- docs/install-mongot.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/install-mongot.md b/docs/install-mongot.md index 071c75df1..95151ae1d 100644 --- a/docs/install-mongot.md +++ b/docs/install-mongot.md @@ -454,7 +454,7 @@ For more information, see [Vector Search compatibility](vector-search-compatibil Send a request to the readiness endpoint. ```bash - docker exec mongot curl -s http://mongot:8080/health + docker exec mongot -- curl localhost:8080/health ``` If `mongot` starts successfully, the endpoint returns: From c5d45da39c5f7a04cfb9d09a6e44e9ab74265279 Mon Sep 17 00:00:00 2001 From: rasika-chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Mon, 20 Jul 2026 12:11:22 +0530 Subject: [PATCH 85/96] Created a folder for Vector Search and moved the files --- docs/{ => vector_search}/configure-mongot.md | 0 docs/vector_search/create-search-index.md | 12 ++++++++++++ docs/{ => vector_search}/install-mongot.md | 0 .../vector-search-architecture.md | 0 .../vector-search-compatibility.md | 0 mkdocs-base.yml | 6 +++++- 6 files changed, 17 insertions(+), 1 deletion(-) rename docs/{ => vector_search}/configure-mongot.md (100%) create mode 100644 docs/vector_search/create-search-index.md rename docs/{ => vector_search}/install-mongot.md (100%) rename docs/{ => vector_search}/vector-search-architecture.md (100%) rename docs/{ => vector_search}/vector-search-compatibility.md (100%) diff --git a/docs/configure-mongot.md b/docs/vector_search/configure-mongot.md similarity index 100% rename from docs/configure-mongot.md rename to docs/vector_search/configure-mongot.md diff --git a/docs/vector_search/create-search-index.md b/docs/vector_search/create-search-index.md new file mode 100644 index 000000000..993bfa2d5 --- /dev/null +++ b/docs/vector_search/create-search-index.md @@ -0,0 +1,12 @@ +# Search Indexes + +- Percona Search for MongoDB enable performant text search queries by mapping search terms to the documents that contain those terms. +- Search queries use the aggregation pipeline stages `$search` and `$searchMeta`. +- When you create a search index, Percona Search for MongoDB transforms your data into a sequence of tokens or terms. + + +## Create a Search Index + +You can use the `createSearchIndex()` method to create a single Percona Search for MongoDB or Vector Search index on a collection, or the `createSearchIndexes()` method to create multiple indexes simultaneously. + + diff --git a/docs/install-mongot.md b/docs/vector_search/install-mongot.md similarity index 100% rename from docs/install-mongot.md rename to docs/vector_search/install-mongot.md diff --git a/docs/vector-search-architecture.md b/docs/vector_search/vector-search-architecture.md similarity index 100% rename from docs/vector-search-architecture.md rename to docs/vector_search/vector-search-architecture.md diff --git a/docs/vector-search-compatibility.md b/docs/vector_search/vector-search-compatibility.md similarity index 100% rename from docs/vector-search-compatibility.md rename to docs/vector_search/vector-search-compatibility.md diff --git a/mkdocs-base.yml b/mkdocs-base.yml index 5c90c2626..7be9939cb 100644 --- a/mkdocs-base.yml +++ b/mkdocs-base.yml @@ -205,7 +205,11 @@ nav: - vector-search-architecture.md - vector-search-compatibility.md - install-mongot.md - - configure-mongot.md + - Search indexes: + - "Create a search index": create-search-index.md + - "Search index types": search-index-types.md + - "Search index options": search-index-options.md + - "Search index management": search-index-management.md - Backup: - "Hot Backup": "hot-backup.md" - backup-cursor.md From 0bca53fce0ed7eef25c8bd0137689249184cabd4 Mon Sep 17 00:00:00 2001 From: rasika-chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Mon, 20 Jul 2026 12:14:00 +0530 Subject: [PATCH 86/96] Update create-search-index.md --- docs/vector_search/create-search-index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/vector_search/create-search-index.md b/docs/vector_search/create-search-index.md index 993bfa2d5..b071efbde 100644 --- a/docs/vector_search/create-search-index.md +++ b/docs/vector_search/create-search-index.md @@ -7,6 +7,6 @@ ## Create a Search Index -You can use the `createSearchIndex()` method to create a single Percona Search for MongoDB or Vector Search index on a collection, or the `createSearchIndexes()` method to create multiple indexes simultaneously. +You can use the `createSearchIndex()` method to create a single Search or Vector Search index on a collection, or the `createSearchIndexes()` method to create multiple indexes simultaneously. From 2809dd05e771278161ec05d679674246d14de116 Mon Sep 17 00:00:00 2001 From: rasika-chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Mon, 20 Jul 2026 13:57:12 +0530 Subject: [PATCH 87/96] Update create-search-index.md --- docs/vector_search/create-search-index.md | 47 ++++++++++++++++++++++- 1 file changed, 46 insertions(+), 1 deletion(-) diff --git a/docs/vector_search/create-search-index.md b/docs/vector_search/create-search-index.md index b071efbde..f2b0a37ee 100644 --- a/docs/vector_search/create-search-index.md +++ b/docs/vector_search/create-search-index.md @@ -1,12 +1,57 @@ # Search Indexes -- Percona Search for MongoDB enable performant text search queries by mapping search terms to the documents that contain those terms. +A search index is a data structure that maps the terms in your documents to the documents that contain them. Instead of scanning every document in a collection, a search query looks up terms in the index and retrieves only the matching documents, along with metadata such as term positions and relevance data. + +- Search Indexes are maintained by the `mongot` process using Apache Lucene. - Search queries use the aggregation pipeline stages `$search` and `$searchMeta`. - When you create a search index, Percona Search for MongoDB transforms your data into a sequence of tokens or terms. +## How Search Indexes work + +When you create a search index on a collection, `mongot` does the following: +{.power-number} + +1. Performs an initial sync, reading the collection data from mongod and building the Lucene index. +2. Opens a change stream on the collection to watch for inserts, updates, and deletes. +3. Applies those changes to the index continuously, keeping it in sync with the collection. + + + + + + + + + + + + ## Create a Search Index You can use the `createSearchIndex()` method to create a single Search or Vector Search index on a collection, or the `createSearchIndexes()` method to create multiple indexes simultaneously. +The following code shows how to create a single Search index: + +```sh +db.products.createSearchIndex( + "products_text_idx", + { + mappings: { + dynamic: false, + fields: { + name: { + type: "string", + analyzer: "lucene.standard" + }, + description: { + type: "string", + analyzer: "lucene.standard" + } + } + } + } +); +``` + From c365f1ecede2acff70e879ebacc70606c86bdcfc Mon Sep 17 00:00:00 2001 From: rasika-chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Mon, 20 Jul 2026 14:18:16 +0530 Subject: [PATCH 88/96] added search index topic --- docs/vector_search/create-search-index.md | 15 +++++++-------- docs/{ => vector_search}/overview-search.md | 0 2 files changed, 7 insertions(+), 8 deletions(-) rename docs/{ => vector_search}/overview-search.md (100%) diff --git a/docs/vector_search/create-search-index.md b/docs/vector_search/create-search-index.md index f2b0a37ee..562f6db16 100644 --- a/docs/vector_search/create-search-index.md +++ b/docs/vector_search/create-search-index.md @@ -6,7 +6,6 @@ A search index is a data structure that maps the terms in your documents to the - Search queries use the aggregation pipeline stages `$search` and `$searchMeta`. - When you create a search index, Percona Search for MongoDB transforms your data into a sequence of tokens or terms. - ## How Search Indexes work When you create a search index on a collection, `mongot` does the following: @@ -16,16 +15,14 @@ When you create a search index on a collection, `mongot` does the following: 2. Opens a change stream on the collection to watch for inserts, updates, and deletes. 3. Applies those changes to the index continuously, keeping it in sync with the collection. +## Types of Search Indexes +Percona Search for MongoDB supports two index types: +- Search indexes power full-text search with the `$search` and `$searchMeta` stages. They support text analyzers, relevance-based scoring, autocomplete, faceting, and highlighting. +- Vector search indexes power semantic and similarity search with the `$vectorSearch` stage. They index vector embeddings that you store in your documents and support [approximate nearest neighbor (ANN) :octicons-link-external-16:](https://www.mongodb.com/resources/basics/ann-search){:target="_blank"} search. - - - - - - - +For more information, see [how vector search works](). ## Create a Search Index @@ -54,4 +51,6 @@ db.products.createSearchIndex( ); ``` +The following code shows how to create a Multiple Search indexes: + diff --git a/docs/overview-search.md b/docs/vector_search/overview-search.md similarity index 100% rename from docs/overview-search.md rename to docs/vector_search/overview-search.md From 238a72530c06c70014ed8ed1d4fb4f9ef34bae07 Mon Sep 17 00:00:00 2001 From: rasika-chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Mon, 20 Jul 2026 14:31:09 +0530 Subject: [PATCH 89/96] Update create-search-index.md --- docs/vector_search/create-search-index.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/vector_search/create-search-index.md b/docs/vector_search/create-search-index.md index 562f6db16..115d2ef03 100644 --- a/docs/vector_search/create-search-index.md +++ b/docs/vector_search/create-search-index.md @@ -53,4 +53,10 @@ db.products.createSearchIndex( The following code shows how to create a Multiple Search indexes: +## Field mappings +A search index definition specifies which fields to index and how to index them. You can choose between two mapping strategies: + +- [Dynamic mapping :octicons-link-external-16:](https://www.mongodb.com/docs/search/index/define-field-mappings/#dynamic-mappings){:target="_blank"} indexes all fields of supported types automatically, including fields added to documents later. Fields can be indexed based on the default set of types or by configuring a `typeSet`. + +- [Static mapping :octicons-link-external-16:](https://www.mongodb.com/docs/search/index/define-field-mappings/#static-mappings){:target="_blank"} indexes only the fields you explicitly define. To use static mappings to configure index options for only some fields, set `mappings.dynamic` to false and specify the field name, [data type :octicons-link-external-16:](https://www.mongodb.com/docs/search/index/define-field-mappings/#mongodb-search-field-types){:target="_blank"}, and other configuration options for each field that you want to index. You can specify the fields in any order. \ No newline at end of file From b59e232da721b90c6c3c0e11d23862988308d071 Mon Sep 17 00:00:00 2001 From: rasika-chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Mon, 20 Jul 2026 14:37:08 +0530 Subject: [PATCH 90/96] create search index topic --- docs/vector_search/create-search-index.md | 33 +++----------------- docs/vector_search/search-index.md | 38 +++++++++++++++++++++++ 2 files changed, 43 insertions(+), 28 deletions(-) create mode 100644 docs/vector_search/search-index.md diff --git a/docs/vector_search/create-search-index.md b/docs/vector_search/create-search-index.md index 115d2ef03..4e38fc4dd 100644 --- a/docs/vector_search/create-search-index.md +++ b/docs/vector_search/create-search-index.md @@ -1,30 +1,4 @@ -# Search Indexes - -A search index is a data structure that maps the terms in your documents to the documents that contain them. Instead of scanning every document in a collection, a search query looks up terms in the index and retrieves only the matching documents, along with metadata such as term positions and relevance data. - -- Search Indexes are maintained by the `mongot` process using Apache Lucene. -- Search queries use the aggregation pipeline stages `$search` and `$searchMeta`. -- When you create a search index, Percona Search for MongoDB transforms your data into a sequence of tokens or terms. - -## How Search Indexes work - -When you create a search index on a collection, `mongot` does the following: -{.power-number} - -1. Performs an initial sync, reading the collection data from mongod and building the Lucene index. -2. Opens a change stream on the collection to watch for inserts, updates, and deletes. -3. Applies those changes to the index continuously, keeping it in sync with the collection. - -## Types of Search Indexes - -Percona Search for MongoDB supports two index types: - -- Search indexes power full-text search with the `$search` and `$searchMeta` stages. They support text analyzers, relevance-based scoring, autocomplete, faceting, and highlighting. -- Vector search indexes power semantic and similarity search with the `$vectorSearch` stage. They index vector embeddings that you store in your documents and support [approximate nearest neighbor (ANN) :octicons-link-external-16:](https://www.mongodb.com/resources/basics/ann-search){:target="_blank"} search. - -For more information, see [how vector search works](). - -## Create a Search Index +# Create a Search Index You can use the `createSearchIndex()` method to create a single Search or Vector Search index on a collection, or the `createSearchIndexes()` method to create multiple indexes simultaneously. @@ -59,4 +33,7 @@ A search index definition specifies which fields to index and how to index them. - [Dynamic mapping :octicons-link-external-16:](https://www.mongodb.com/docs/search/index/define-field-mappings/#dynamic-mappings){:target="_blank"} indexes all fields of supported types automatically, including fields added to documents later. Fields can be indexed based on the default set of types or by configuring a `typeSet`. -- [Static mapping :octicons-link-external-16:](https://www.mongodb.com/docs/search/index/define-field-mappings/#static-mappings){:target="_blank"} indexes only the fields you explicitly define. To use static mappings to configure index options for only some fields, set `mappings.dynamic` to false and specify the field name, [data type :octicons-link-external-16:](https://www.mongodb.com/docs/search/index/define-field-mappings/#mongodb-search-field-types){:target="_blank"}, and other configuration options for each field that you want to index. You can specify the fields in any order. \ No newline at end of file +- [Static mapping :octicons-link-external-16:](https://www.mongodb.com/docs/search/index/define-field-mappings/#static-mappings){:target="_blank"} indexes only the fields you explicitly define. To use static mappings to configure index options for only some fields, set `mappings.dynamic` to false and specify the field name, [data type :octicons-link-external-16:](https://www.mongodb.com/docs/search/index/define-field-mappings/#mongodb-search-field-types){:target="_blank"}, and other configuration options for each field that you want to index. You can specify the fields in any order. + + +[Create a search index :material-arrow-right:](../create-search-index.md){.md-button} \ No newline at end of file diff --git a/docs/vector_search/search-index.md b/docs/vector_search/search-index.md new file mode 100644 index 000000000..c952a7f38 --- /dev/null +++ b/docs/vector_search/search-index.md @@ -0,0 +1,38 @@ +# Search Indexes + +A search index is a data structure that maps the terms in your documents to the documents that contain them. Instead of scanning every document in a collection, a search query looks up terms in the index and retrieves only the matching documents, along with metadata such as term positions and relevance data. + +- Search Indexes are maintained by the `mongot` process using Apache Lucene. +- Search queries use the aggregation pipeline stages `$search` and `$searchMeta`. +- When you create a search index, Percona Search for MongoDB transforms your data into a sequence of tokens or terms. + +## How Search Indexes work + +When you create a search index on a collection, `mongot` does the following: +{.power-number} + +1. Performs an initial sync, reading the collection data from mongod and building the Lucene index. +2. Opens a change stream on the collection to watch for inserts, updates, and deletes. +3. Applies those changes to the index continuously, keeping it in sync with the collection. + +## Types of Search Indexes + +Percona Search for MongoDB supports two index types: + +- Search indexes power full-text search with the `$search` and `$searchMeta` stages. They support text analyzers, relevance-based scoring, autocomplete, faceting, and highlighting. +- Vector search indexes power semantic and similarity search with the `$vectorSearch` stage. They index vector embeddings that you store in your documents and support [approximate nearest neighbor (ANN) :octicons-link-external-16:](https://www.mongodb.com/resources/basics/ann-search){:target="_blank"} search. + +For more information, see [how vector search works](). + +## Field mappings + +A search index definition specifies which fields to index and how to index them. You can choose between two mapping strategies: + +- [Dynamic mapping :octicons-link-external-16:](https://www.mongodb.com/docs/search/index/define-field-mappings/#dynamic-mappings){:target="_blank"} indexes all fields of supported types automatically, including fields added to documents later. Fields can be indexed based on the default set of types or by configuring a `typeSet`. + +- [Static mapping :octicons-link-external-16:](https://www.mongodb.com/docs/search/index/define-field-mappings/#static-mappings){:target="_blank"} indexes only the fields you explicitly define. To use static mappings to configure index options for only some fields, set `mappings.dynamic` to false and specify the field name, [data type :octicons-link-external-16:](https://www.mongodb.com/docs/search/index/define-field-mappings/#mongodb-search-field-types){:target="_blank"}, and other configuration options for each field that you want to index. You can specify the fields in any order. + + +[Create a search index :material-arrow-right:](../create-search-index.md){.md-button} +[Update a search index :material-arrow-right:](../cupdate-search-index.md){.md-button} +[Drop a search index :material-arrow-right:](../drop-search-index.md){.md-button} \ No newline at end of file From ebcb4c5146eed7c76386cec3278233fc00900e56 Mon Sep 17 00:00:00 2001 From: rasika-chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Mon, 20 Jul 2026 15:43:17 +0530 Subject: [PATCH 91/96] update index and dele index topics created --- docs/vector_search/create-search-index.md | 124 ++++++++++++++++++++-- docs/vector_search/delete-search-index.md | 15 +++ docs/vector_search/search-index.md | 2 +- docs/vector_search/update-search-index.md | 67 ++++++++++++ 4 files changed, 198 insertions(+), 10 deletions(-) create mode 100644 docs/vector_search/delete-search-index.md create mode 100644 docs/vector_search/update-search-index.md diff --git a/docs/vector_search/create-search-index.md b/docs/vector_search/create-search-index.md index 4e38fc4dd..c6b2fed78 100644 --- a/docs/vector_search/create-search-index.md +++ b/docs/vector_search/create-search-index.md @@ -1,10 +1,13 @@ -# Create a Search Index +# Create Search Index You can use the `createSearchIndex()` method to create a single Search or Vector Search index on a collection, or the `createSearchIndexes()` method to create multiple indexes simultaneously. -The following code shows how to create a single Search index: -```sh +## Create single Search Index + +The following code shows how to create a **single Search Index** on products collection: + +```javascript db.products.createSearchIndex( "products_text_idx", { @@ -25,15 +28,118 @@ db.products.createSearchIndex( ); ``` -The following code shows how to create a Multiple Search indexes: +## Create multiple Search Indexes + +The following example creates two Search indexes on the products collection: + +```javascript +db.runCommand({ + createSearchIndexes: "products", + indexes: [ + { + name: "products_text_idx", + type: "search", + definition: { + mappings: { + dynamic: false, + fields: { + name: { + type: "string", + analyzer: "lucene.standard" + }, + description: { + type: "string", + analyzer: "lucene.standard" + } + } + } + } + }, + { + name: "products_name_idx", + type: "search", + definition: { + mappings: { + dynamic: false, + fields: { + name: { + type: "string", + analyzer: "lucene.simple" + } + } + } + } + } + ] +}); +``` + +## Create Search and Vector Search Indexes together + +You can include Search and Vector Search index definitions in the same command. + +```javascript +db.runCommand({ + createSearchIndexes: "products", + indexes: [ + { + name: "products_text_idx", + type: "search", + definition: { + mappings: { + dynamic: false, + fields: { + name: { + type: "string", + analyzer: "lucene.standard" + }, + description: { + type: "string", + analyzer: "lucene.standard" + } + } + } + } + }, + { + name: "products_vector_idx", + type: "vectorSearch", + definition: { + fields: [ + { + type: "vector", + path: "embedding", + numDimensions: 768, + similarity: "cosine" + }, + { + type: "filter", + path: "category" + } + ] + } + } + ] +}); +``` + +## Supported field types -## Field mappings +The following field types are supported: -A search index definition specifies which fields to index and how to index them. You can choose between two mapping strategies: +| Field type | Supported source data| Use| +| -----------| ----------------------| --| +| `boolean` | Boolean | Supports exact matching and filtering on `true` and `false` values. | +| `date` | BSON Date | Supports exact matches, range and proximity queries, sorting, and faceting. | +| `document` | Object or subdocument | Defines mappings for fields within a nested object. | +| `embeddedDocuments` | Array of objects | Indexes objects within an array so that each embedded object can be evaluated independently. | +| `number` | `int32`, `int64`, or `double` | Supports exact matches, numeric range and proximity queries, sorting, and faceting. | +| `objectId` | `ObjectId` | Supports matching, filtering, and range operations on `ObjectId` values. | +| `string` | String | Analyzes text for full-text operators such as `text`, `phrase`, `regex`, and `wildcard`. | -- [Dynamic mapping :octicons-link-external-16:](https://www.mongodb.com/docs/search/index/define-field-mappings/#dynamic-mappings){:target="_blank"} indexes all fields of supported types automatically, including fields added to documents later. Fields can be indexed based on the default set of types or by configuring a `typeSet`. +For detailed inforamtion on supported feild types, see MongoDB documentation](https://www.mongodb.com/docs/search/index/define-field-mappings/#mongodb-search-field-types) -- [Static mapping :octicons-link-external-16:](https://www.mongodb.com/docs/search/index/define-field-mappings/#static-mappings){:target="_blank"} indexes only the fields you explicitly define. To use static mappings to configure index options for only some fields, set `mappings.dynamic` to false and specify the field name, [data type :octicons-link-external-16:](https://www.mongodb.com/docs/search/index/define-field-mappings/#mongodb-search-field-types){:target="_blank"}, and other configuration options for each field that you want to index. You can specify the fields in any order. +[Update a search index :material-arrow-right:](../create-search-index.md){.md-button} +[Delete a search index :material-arrow-right:](../delete-search-index.md){.md-button} -[Create a search index :material-arrow-right:](../create-search-index.md){.md-button} \ No newline at end of file diff --git a/docs/vector_search/delete-search-index.md b/docs/vector_search/delete-search-index.md new file mode 100644 index 000000000..a549ef98f --- /dev/null +++ b/docs/vector_search/delete-search-index.md @@ -0,0 +1,15 @@ +# Delete Index + +Use the `dropSearchIndex()` method to delete a search or vector search index. The method works the same way for both index types: + +```javascript +db.products.dropSearchIndex("products_text_idx"); +``` + +Deleting an index is irreversible. To restore search functionality, create the index again with `createSearchIndex()`, and wait for the initial sync to +complete before running queries against it. + +!!! warning + `$search` and `$vectorSearch` queries that reference an index that does not exist return an empty result set rather than an error. If your +application starts receiving empty search results after an index change, verify that the index exists and check its status with `getSearchIndexes()`. + diff --git a/docs/vector_search/search-index.md b/docs/vector_search/search-index.md index c952a7f38..b05eb5062 100644 --- a/docs/vector_search/search-index.md +++ b/docs/vector_search/search-index.md @@ -35,4 +35,4 @@ A search index definition specifies which fields to index and how to index them. [Create a search index :material-arrow-right:](../create-search-index.md){.md-button} [Update a search index :material-arrow-right:](../cupdate-search-index.md){.md-button} -[Drop a search index :material-arrow-right:](../drop-search-index.md){.md-button} \ No newline at end of file +[Delete a search index :material-arrow-right:](../delete-search-index.md){.md-button} \ No newline at end of file diff --git a/docs/vector_search/update-search-index.md b/docs/vector_search/update-search-index.md new file mode 100644 index 000000000..27db0fe1d --- /dev/null +++ b/docs/vector_search/update-search-index.md @@ -0,0 +1,67 @@ +# Update Index + +You can use the `updateSearchIndex()` method to update a Search or Vector Search index. + +!!! warning + `updateSearchIndex()` replaces the index definition; it does not merge your changes into the existing one. Always submit the complete definition, including the fields you are not changing. Any field you omit is removed from the index. + +You cannot rename an index with this method. To rename an index, drop it and create a new one with the desired name. + +After you update an index, mongot rebuilds it in the background. The index continues to serve queries with the old definition until the rebuild completes. Use `getSearchIndexes()` to check the rebuild status. + +## Update single Search Index + +Suppose the `products_text_idx `index currently includes the `name` and `description` fields. The following operation updates the index to include the `category` field as well: + +```javascript +db.products.updateSearchIndex( + "products_text_idx", + { + mappings: { + dynamic: false, + fields: { + name: { + type: "string", + analyzer: "lucene.standard" + }, + description: { + type: "string", + analyzer: "lucene.standard" + }, + category: { + type: "string", + analyzer: "lucene.standard" + } + } + } + } +); +``` + +## Update a Vector Search index + +Suppose `products_vector_idx` currently indexes the `embedding` field. The following operation adds `category` as a filter field: + +```javascript +db.products.updateSearchIndex( + "products_vector_idx", + { + fields: [ + { + type: "vector", + path: "embedding", + numDimensions: 768, + similarity: "cosine" + }, + { + type: "filter", + path: "category" + } + ] + } +); +``` + +[Delete a search index :material-arrow-right:](../delete-search-index.md){.md-button} + + From 9120a83ab198678511ebd5768ca6e1a0aeb01b51 Mon Sep 17 00:00:00 2001 From: rasika-chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Mon, 20 Jul 2026 16:01:00 +0530 Subject: [PATCH 92/96] Update delete-search-index.md --- docs/vector_search/delete-search-index.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/vector_search/delete-search-index.md b/docs/vector_search/delete-search-index.md index a549ef98f..c8fa60951 100644 --- a/docs/vector_search/delete-search-index.md +++ b/docs/vector_search/delete-search-index.md @@ -10,6 +10,5 @@ Deleting an index is irreversible. To restore search functionality, create the i complete before running queries against it. !!! warning - `$search` and `$vectorSearch` queries that reference an index that does not exist return an empty result set rather than an error. If your -application starts receiving empty search results after an index change, verify that the index exists and check its status with `getSearchIndexes()`. + `$search` and `$vectorSearch` queries that reference an index that does not exist return an empty result set rather than an error. If your application starts receiving empty search results after an index change, verify that the index exists and check its status with `getSearchIndexes()`. From 369cc81cfedcec74a6e49a2e3c1edbbfd88db773 Mon Sep 17 00:00:00 2001 From: rasika-chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Mon, 20 Jul 2026 16:06:10 +0530 Subject: [PATCH 93/96] update files --- .../{search-index.md => search-index-overview.md} | 0 mkdocs-base.yml | 8 ++++---- 2 files changed, 4 insertions(+), 4 deletions(-) rename docs/vector_search/{search-index.md => search-index-overview.md} (100%) diff --git a/docs/vector_search/search-index.md b/docs/vector_search/search-index-overview.md similarity index 100% rename from docs/vector_search/search-index.md rename to docs/vector_search/search-index-overview.md diff --git a/mkdocs-base.yml b/mkdocs-base.yml index 7be9939cb..6d739ef88 100644 --- a/mkdocs-base.yml +++ b/mkdocs-base.yml @@ -206,10 +206,10 @@ nav: - vector-search-compatibility.md - install-mongot.md - Search indexes: - - "Create a search index": create-search-index.md - - "Search index types": search-index-types.md - - "Search index options": search-index-options.md - - "Search index management": search-index-management.md + - "Search index overview": vector_search/search-index-overview.md + - "Create a search index": vector_search/create-search-index.md + - "Update search index": vector_search/update-search-index.md + - "Delete search index": vector_search/delete-search-index.md - Backup: - "Hot Backup": "hot-backup.md" - backup-cursor.md From 79df643b40f6e7132a8a99f7449e250c9539a5e7 Mon Sep 17 00:00:00 2001 From: rasika-chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Mon, 20 Jul 2026 16:09:38 +0530 Subject: [PATCH 94/96] Update mkdocs-base.yml --- mkdocs-base.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mkdocs-base.yml b/mkdocs-base.yml index 6d739ef88..165148776 100644 --- a/mkdocs-base.yml +++ b/mkdocs-base.yml @@ -201,10 +201,10 @@ nav: - Storage: - "Percona Memory Engine": "inmemory.md" - Search: - - overview-search.md - - vector-search-architecture.md - - vector-search-compatibility.md - - install-mongot.md + - vector_search/overview-search.md + - vector_search/vector-search-architecture.md + - vector_search/vector-search-compatibility.md + - vector_search/install-mongot.md - Search indexes: - "Search index overview": vector_search/search-index-overview.md - "Create a search index": vector_search/create-search-index.md From bb542c6f39b4b57fb13d357d2f753989c95f224f Mon Sep 17 00:00:00 2001 From: rasika-chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Mon, 20 Jul 2026 21:51:18 +0530 Subject: [PATCH 95/96] update the files --- docs/vector_search/create-search-index.md | 210 +++++++++++--------- docs/vector_search/query-search.md | 104 ++++++++++ docs/vector_search/search-index-overview.md | 2 + mkdocs-base.yml | 5 + 4 files changed, 227 insertions(+), 94 deletions(-) create mode 100644 docs/vector_search/query-search.md diff --git a/docs/vector_search/create-search-index.md b/docs/vector_search/create-search-index.md index c6b2fed78..543cac318 100644 --- a/docs/vector_search/create-search-index.md +++ b/docs/vector_search/create-search-index.md @@ -1,126 +1,147 @@ -# Create Search Index +# Create Index You can use the `createSearchIndex()` method to create a single Search or Vector Search index on a collection, or the `createSearchIndexes()` method to create multiple indexes simultaneously. - ## Create single Search Index -The following code shows how to create a **single Search Index** on products collection: +Follow these steps to create a single search index: +{.power-number} -```javascript -db.products.createSearchIndex( - "products_text_idx", - { - mappings: { - dynamic: false, - fields: { - name: { - type: "string", - analyzer: "lucene.standard" - }, - description: { - type: "string", - analyzer: "lucene.standard" + 1. Insert test data from mongosh: + + ```javascript + use test + db.docs.insertMany([ + { text: "MongoDB search is powerful" }, + { text: "Vector search is the future" }, + { text: "Full text search with mongot" } + ]) + + { + acknowledged: true, + insertedIds: { + '0': ObjectId('69ebae2599c54be2ea44ba89'), + '1': ObjectId('69ebae2599c54be2ea44ba8a'), + '2': ObjectId('69ebae2599c54be2ea44ba8b') + } + } + ``` + +2. Create a **single Search Index**: + + ```javascript + db.docs.createSearchIndex({ + name: "search_idx", + definition: { + mappings: { + dynamic: true } - } } - } -); -``` + }) -## Create multiple Search Indexes + search_idx + ``` -The following example creates two Search indexes on the products collection: +3. Check the status. -```javascript -db.runCommand({ - createSearchIndexes: "products", - indexes: [ + ```javascript + db.docs.getSearchIndexes() + [ { - name: "products_text_idx", - type: "search", - definition: { - mappings: { - dynamic: false, - fields: { - name: { - type: "string", - analyzer: "lucene.standard" - }, - description: { - type: "string", - analyzer: "lucene.standard" + id: '69ebae2a651bce4d10f57bdc', + name: 'search_idx', + status: 'READY', + queryable: true, + latestDefinitionVersion: { version: 0, createdAt: ISODate('2026-04-24T17:53:46.000Z') }, + latestDefinition: { mappings: { dynamic: true } }, + statusDetail: [ + { + hostname: '69eb5fc573906b6bfb8cefe7', + status: 'READY', + queryable: true, + mainIndex: { + status: 'READY', + queryable: true, + definitionVersion: { version: 0, createdAt: ISODate('2026-04-24T17:53:46.000Z') }, + definition: { mappings: { dynamic: true, fields: {} } } } - } } + ] + } + ] + ``` + +## Create multiple Search Indexes + +The following example creates two Search indexes: + +```javascript +db.docs.createSearchIndexes([ + { + name: "search_idx", + definition: { + mappings: { + dynamic: true } - }, - { - name: "products_name_idx", - type: "search", - definition: { - mappings: { - dynamic: false, - fields: { - name: { - type: "string", - analyzer: "lucene.simple" - } + } + }, + { + name: "text_search_idx", + definition: { + mappings: { + dynamic: false, + fields: { + text: { + type: "string" } } } } - ] -}); + } +]) +[ 'search_idx', 'text_search_idx' ] ``` +This creates: + +- `search_idx`, which dynamically indexes supported fields. +- `text_search_idx`, which indexes only the text field. ## Create Search and Vector Search Indexes together You can include Search and Vector Search index definitions in the same command. ```javascript -db.runCommand({ - createSearchIndexes: "products", - indexes: [ - { - name: "products_text_idx", - type: "search", - definition: { - mappings: { - dynamic: false, - fields: { - name: { - type: "string", - analyzer: "lucene.standard" - }, - description: { - type: "string", - analyzer: "lucene.standard" - } +db.docs.createSearchIndexes([ + { + name: "search_idx", + type: "search", + definition: { + mappings: { + dynamic: false, + fields: { + text: { + type: "string" } } } - }, - { - name: "products_vector_idx", - type: "vectorSearch", - definition: { - fields: [ - { - type: "vector", - path: "embedding", - numDimensions: 768, - similarity: "cosine" - }, - { - type: "filter", - path: "category" - } - ] - } } - ] -}); + }, + { + name: "vector_idx", + type: "vectorSearch", + definition: { + fields: [ + { + type: "vector", + path: "embedding", + numDimensions: 3, + similarity: "cosine" + } + ] + } + } +]) +[ 'search_idx', 'vector_idx' ] ``` ## Supported field types @@ -140,6 +161,7 @@ The following field types are supported: For detailed inforamtion on supported feild types, see MongoDB documentation](https://www.mongodb.com/docs/search/index/define-field-mappings/#mongodb-search-field-types) -[Update a search index :material-arrow-right:](../create-search-index.md){.md-button} +[Update a search index :material-arrow-right:](../update-search-index.md){.md-button} + [Delete a search index :material-arrow-right:](../delete-search-index.md){.md-button} diff --git a/docs/vector_search/query-search.md b/docs/vector_search/query-search.md new file mode 100644 index 000000000..9aad518be --- /dev/null +++ b/docs/vector_search/query-search.md @@ -0,0 +1,104 @@ +# Query with $search + +The `$search` aggregation stage performs full-text search on fields covered by a search index. It returns documents ordered by relevance, with the most relevant document returned first. + +## Before you begin + +- `mongot` is running and connected to your Percona Search for MongoDB deployment. +- A search index exists for the collection. +- The index includes the fields you want to search. + +## Syntax for $search + +```javascript +db..aggregate([ + { + $search: { + index: "", + : { + + } + } + } +]) +``` + +The `$search `stage accepts the following primary fields: + +| Field| Required | Description| +|------| ---------|-------------| +| `index` | No | Name of the search index. If omitted, `$search` uses the index named `default`. | +| `` | Yes | Operator that defines the search criteria, such as `text`, `phrase`, `autocomplete`, or `compound`. | +| `highlight`| No | Returns matching terms in their original context. | +| `count` | No | Returns the number of matching documents.| +| `sort`| No| Specifies the order of the results.| +| `scoreDetails` | No | Returns details about how the relevance score was calculated. | + +## Search a text field + +The following example searches the `title` field in the `movies` collection for documents containing the term database: + +```javascript + { + $search: { + index: "movies_search", + text: { + query: "database", + path: "title" + } + } + } +]) +``` + +The `text` operator analyzes the query text and compares it with the indexed values in the specified field. + +To search more than one field, provide an array of field names: + +```javascript + { + $search: { + index: "movies_search", + text: { + query: "database", + path: ["title", "description"] + } + } + } +]) +``` + +## Return the relevance score + +Each result has a relevance score that indicates how closely it matches the query. Add a `$project` stage and the `searchScore` metadata expression to include the score in the output: + +```javascript +db.movies.aggregate([ + { + $search: { + index: "movies_search", + text: { + query: "database", + path: ["title", "description"] + } + } + }, + { + $project: { + _id: 0, + title: 1, + description: 1, + score: { + $meta: "searchScore" + } + } + }, + { + $limit: 10 + } +]) +``` + +This query returns the ten most relevant documents and includes the relevance score for each result. + +For the complete syntax and available options, see the [upstream MongoDB documentation :octicons-link-external-16:](https://www.mongodb.com/docs/search/query/aggregation-stages/search/){:target="_blank"} for the $search aggregation stage. \ No newline at end of file diff --git a/docs/vector_search/search-index-overview.md b/docs/vector_search/search-index-overview.md index b05eb5062..e5e4af57f 100644 --- a/docs/vector_search/search-index-overview.md +++ b/docs/vector_search/search-index-overview.md @@ -34,5 +34,7 @@ A search index definition specifies which fields to index and how to index them. [Create a search index :material-arrow-right:](../create-search-index.md){.md-button} + [Update a search index :material-arrow-right:](../cupdate-search-index.md){.md-button} + [Delete a search index :material-arrow-right:](../delete-search-index.md){.md-button} \ No newline at end of file diff --git a/mkdocs-base.yml b/mkdocs-base.yml index 165148776..6a9bcb3ec 100644 --- a/mkdocs-base.yml +++ b/mkdocs-base.yml @@ -210,6 +210,11 @@ nav: - "Create a search index": vector_search/create-search-index.md - "Update search index": vector_search/update-search-index.md - "Delete search index": vector_search/delete-search-index.md + - Run search queries: + - Query with $search: vector_search/query-search.md + - Retrieve metadata with $searchMeta: vector_search/query-searchmeta.md + - Operators: vector_search/operators.md # phase 2 candidate + - Scoring: vector_search/scoring.md - Backup: - "Hot Backup": "hot-backup.md" - backup-cursor.md From 39bb4cd46aa95b1f9b75ab30726f416586c12299 Mon Sep 17 00:00:00 2001 From: rasika-chivate <95711051+rasika-chivate@users.noreply.github.com> Date: Mon, 20 Jul 2026 22:09:12 +0530 Subject: [PATCH 96/96] Update create-search-index.md --- docs/vector_search/create-search-index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/vector_search/create-search-index.md b/docs/vector_search/create-search-index.md index 543cac318..c44486c7b 100644 --- a/docs/vector_search/create-search-index.md +++ b/docs/vector_search/create-search-index.md @@ -7,7 +7,7 @@ You can use the `createSearchIndex()` method to create a single Search or Vector Follow these steps to create a single search index: {.power-number} - 1. Insert test data from mongosh: +1. Insert test data from mongosh: ```javascript use test