For AI agents: a documentation index is available at https://www.mongodb.com/docs/llms.txt — markdown versions of all pages are available by appending .md to any URL path.
Docs Menu

MongoDB Search and MongoDB Vector Search Changelog

Note

Applies to Atlas-Hosted MongoDB Search and MongoDB Vector Search

This changelog applies only to MongoDB Search and MongoDB Vector Search hosted in Atlas. To find release notes for MongoDB Search and MongoDB Vector Search on self-managed Community and Enterprise editions, see the Self-Managed MongoDB Search and Vector Search Release Notes.

  • Adds preview support for $vectorSearch over arrays of embeddings and arrays of embedded documents containing vectors.
  • Introduces the storedSource option for MongoDB Vector Search indexes to store source document fields with the index and return them in $vectorSearch results using returnStoredSource.
  • Adds support for multi-select faceting to enable users to filter by multiple buckets within the same facet without recomputing counts for the other buckets in that facet.
  • Adds preview support for flat indexes in MongoDB Vector Search via the flat value for the indexingMethod option. Flat indexes provide enhanced support for multitenant workloads, delivering improved performance, recall, and resource efficiency.
  • Adds preview support for lexical prefilters for Vector Search with the addition of the vectorSearch operator and the vector index type. This allows you to filter documents by analyzed text capabilities such a fuzzy search, phrase matching, location filtering, wildcard pattern matching, and so on before performing vector similarity searches.
  • Deduplicate storage cost for string fields indexed with multi.

  • Fixes an issue with token field types when faceting on high cardinality fields.

  • Supports $exists operator in the $vectorSearch pre-filter.

  • Adds support for configuring dynamic indexing with typeSets. To learn more, see Configure a typeSet.

  • Starting with MongoDB 8.0.14, the returnStoredSource and scoreDetails options must be set to true or false. Queries that specify null for these options will fail.

  • Adds support for specifying the stableTfl or boolean similarity algorithms when indexing string fields as the MongoDB Search string and autocomplete types. These algorithms are applied at query time to calculate MongoDB Search scores with the text, phrase, queryString, and autocomplete operators. To learn more, see Score Details.

  • Supports setting the $ne operator to null in MongoDB Vector Search pre-filters.

  • Improves highlight loading by always retrieving highlights from the base string field.

  • Skips downloads of snapshots that exceed the configured age threshold.

  • Updates blobstore credential handling to use the new refreshDate field instead of the deprecated expirationDate field.

  • Adds a required memory usage metric.

  • Adds support for new token filter types keywordRepeat and removeDuplicates for custom analyzers.

  • Removes support for deprecated kp and lovins stemmers for the snowballStemming token filter type.

  • Changes the german stemmer's handling of umlauts, so that the German letters ä, ö, and ü, are expanded to ae, oe, and ue, respectively.

  • The german2 stemmer is now outdated.

  • MongoDB v8.1 supports:

    • Creating search indexes on Views using mongosh and Driver methods.

    • Running $search, $searchMeta, and $vectorSearch queries against standard Views.

  • Introduces structured JSON mongot logs.

  • Adds the ability to facet on token types. stringFacet is still supported but is now outdated.

  • Exposes the Hierarchical Navigable Small Worlds graph construction parameters for a MongoDB Vector Search index definition.

  • Adds number of segments and per-segment statistics to MongoDB Vector Search explain output.

  • Increases the vector dimension limit to 8192.
  • Supports scalar quantization feature to reduce the main memory requirements of vector search by around 75%.

  • Supports binary quantization feature to reduce the main memory requirements of vector search by around 97%.

  • Supports ingesting int1 vectors using the new BinData vector subtype.

  • Supports ENN search using int8 and int1 subtypes.

  • Fixes an issue that caused Search Nodes to crash when disk was full.
  • Supports synonyms in phrase queries.

  • Adds support for the matchCriteria field to the text operator.

  • Changes the behavior of indexes with failed synonyms mapping so that queries which don't use the affected synonyms mapping can run successfully.

  • Fixes a bug that caused consistency issues when using searchAfter or searchBefore with search nodes.

  • Transitions indexes where the index objects limit is reached to a queryable STALE state.

  • Supports indexing token types in embedded documents.

  • Supports using the mongosh command or driver helper methods to create, retrieve, edit, or delete MongoDB Search indexes on M0, M2, or M5 Atlas clusters.

  • Supports ingesting float32 and int8 vectors using the new BSON vector type.

  • Supports pre-filtering using arrays with all operators.

  • Supports using ObjectId with range operators in MongoDB Vector Search pre-filters.

  • Supports using UUID values with all operators in MongoDB Vector Search pre-filters.

  • Supports using the $not operator in MongoDB Vector Search pre-filters.

For MongoDB Search:

  • Upgrades to Java 21.

    Java 21 supports SIMD, which increases the amount of parallelism the CPU can do during vector comparisons.

  • Updates all indexes to support the sort option for number and date types.

  • Automatically indexes null and UUID values if you enable dynamic mappings, which might increase the size of your index.

  • Supports using the range operator and sort option with ObjectId types.

  • Supports using the sort option with boolean values.

Note

Atlas reindexes all of your existing MongoDB Search indexes on the Atlas cluster in a rolling manner. The Atlas UI displays alerts indicating the timing of your reindexing. Clusters not using separate search nodes might notice a temporary increase in disk and CPU utilization during reindexing. For clusters using separate search nodes, Atlas temporarily deploys additional nodes for free for reindexing to avoid downtime for swapping of indexes when the new index build completes.

  • Introduces MongoDB Search Query Templates in the Search Tester, which makes querying easier with pre-written $search queries including conditional clauses like must and should, autocomplete for search-as-you-type experiences, faceting, and more. To learn more, see Define Your Query.

  • Introduces changes to the MongoDB Search API endpoints. To learn more, see API Changelog for May 31 2024 Release.

  • Fixes an issue where MongoDB Search didn't include the _id field for some documents in the results when using returnStoredSource.
  • Fixes an issue where MongoDB Search triggered spurious initial syncs after certain mongod configuration changes.

  • Rebuilds indexes where the definition version is missing.

  • Fixes an issue where MongoDB Search didn't generate results for searchAfter or searchBefore queries when scores were tied.

  • Adds the ability to query and sort by null and UUID values.

  • Updates MongoDB Vector Search queries to run concurrently by default on search nodes.
  • Re-enables sort pruning.

  • Includes synonym queries in explain().

  • Increases the vector dimension limit to 4096.

  • Fixes an issue where sharded Atlas clusters running MongoDB v7.2.0 would return an error for $searchMeta stages that contain the facet collector.
  • Supports retrieving $search results sequentially after or before a reference point, which you can specify using a token generated by the $meta keyword searchSequenceToken. To learn more, see Paginate the Results.
  • Supports using equals, in, and range operators to perform exact matching and filtering on BSON strings indexed as the MongoDB Search token type.
  • Makes separate Search Nodes for AWS generally available for both your development and production deployments. To learn more, see Node Architecture.

  • Deprecates knnVector type and knnBeta operator. Instead, you can now use the new vectorSearch index type and the $vectorSearch pipeline stage in both your development and production deployments. To learn more, see MongoDB Vector Search Overview.

  • Improves latency when there are no mixed types in the fields you use to sort the results.

  • Introduces low-CPU search tiers.

  • Makes $vectorSearch generally available for both your development and production deployments. Also makes separate Search Nodes for AWS generally available for both your development and production deployments. To learn more, see Node Architecture.

  • Introduces vectorSearch index type that indexes vector embeddings as vector type for semantic search and boolean, numeric, and string data as filter type for pre-filtering.

Note

We are in the process of rolling out the new MongoDB Vector Search experience with a dedicated MongoDB Vector Search index definition. It will be available in your project within the next few days or after the next maintenance window.

Introduces $vectorSearch to perform semantic search on data in your Atlas cluster running MongoDB 7.0.2.

Note

MongoDB Vector Search is available as a preview feature for evaluation and user feedback gathering. It's not recommended for production deployments as the feature and the corresponding documentation might change at any time during the Preview period.

To learn more, see MongoDB Vector Search Overview.

  • Supports custom analyzer configuration in the Atlas UI Visual Editor.

  • Supports token type configuration in the Atlas UI Visual Editor.

  • Performs system upgrade. You might notice some indexing and querying performance changes.
  • Supports highlighting for fields if the fields are indexed under a parent field of type document for query predicates specified inside the embeddedDocument operator.

  • Starts initial sync automatically in certain scenarios with sharding.

  • Fixes a bug that caused changes to token field mapping to be ignored.

  • Adds the sort option, which supports sorting in ascending or descending order on fields that you define in your MongoDB Search index for sorting.

    Note

    MongoDB Search sort option is available in sharded clusters only if you run MongoDB v6.0+.

  • Limits the knnBeta operator as a top-level operator.

  • Introduces the ability to perform text, wildcard, regular expression, fuzzy, and range searches on string fields by using the queryString operator.

  • Improves performance of $search with $limit.

  • For Atlas clusters running MongoDB 6.0.8 or later on M10 or higher clusters, introduces ability to create and manage MongoDB Search indexes from mongosh and NodeJS driver.

    Note

    This release does not allow using the mongosh command or driver helper methods to create, retrieve, edit, or delete MongoDB Search indexes on M0, M2, or M5 Atlas clusters.

  • Provides preview of vector search to store, index, and query vectors using MongoDB Search.
  • Adds support for restoring MongoDB Search indexes from Cloud Backup snapshots of M10 or larger clusters.
  • Supports tracking search terms in queries and viewing query analytics for tracked search terms in the Atlas UI for M10 or higher Atlas clusters.
  • Adds the in operator, which performs a search for an array of values and returns documents where the value of the field equals any value in the specified array.

  • Changes the operator option of the facet collector to be optional. facet queries that you specify without an operator run over all indexed documents.

  • Introduces the ability to edit your MongoDB Search query in the Search Tester.
  • Supports the embeddedDocuments type in the MongoDB Search visual editor configuration mode in the Atlas UI.
  • Supports statically indexing arrays of strings as the autocomplete type and querying the indexed field using the autocomplete operator.

  • Supports dynamically and statically indexing numbers in arrays and querying the indexed numbers in arrays using the range operator only.

  • Supports dynamically and statically indexing dates in arrays and querying the indexed dates in arrays using the range operator only.

  • Supports dynamically and statically indexing objectIds and arrays of objectIds and querying the indexed objectIds using the equals operator.

  • Supports dynamically and statically indexing booleans and arrays of booleans and querying the booleans using the equals operator.

  • Upgrades to MongoDB Search, which include the following:

    • Querying improvements

      • Supports \w, \W, \D, \s, and \S regular expressions in the regex query. However, MongoDB Search doesn't return results for characters other than s, S, w, W, d, and D in the regex query. We recommend using backslashes according to regex standards.

      • Updates to email tokenizer top-level domains from the IANA Root Zone Database.

    • Highlighting improvements

      • Passage selector truncates long snippets to show a shorter snippet, which fixes the cause for queries failing when the passage is long.
    • Explain output for some queries might look different. If you use explain, verify that the changes don't break logic in your environment.

    In addition to the preceding list of changes, you might notice some indexing and querying performance changes.

  • Introduces moreLikeThis operator to retrieve documents similar to one or more input documents.

  • Optimizes internal batching to improve stored source query performance when your query matches a large number of documents (5,000 or more).
  • Introduces a new Project Search Index Editor role to create, view, edit, and delete MongoDB Search indexes using the Atlas UI or API.

  • Serves queries using your last valid index if new index definition is invalid.

  • Removes Lucene's default clause limit of 1024 for BooleanQuery on dedicated clusters.

    Note

    We are extending support for faceting on numeric and date fields using the number and date types from August to September 2022. You must migrate to the numberFacet and dateFacet types in all index definitions for faceting on numeric and date fields, respectively.

  • Adds the numberFacet and dateFacet data types for running facet queries on number and date fields respectively.

    Note

    We are extending support for faceting on numeric and date fields using the number and date types from August to September 2022. You must migrate to the numberFacet and dateFacet types in all index definitions for faceting on numeric and date fields, respectively.

  • Adds reverse token filter, which reverses each string token.

Autocomplete improvements in this release:

  • Adds support for analyzers in the index definition for autocomplete.

  • Boosts exact matches in autocomplete operator.

  • Adds rightEdgeGram tokenization strategy to create edgeGram-like tokens starting at the right side of words (instead of the left side).

Bug fixes in this release:

  • Fixes objectId highlighting error.
  • Allows indexes to enter a recovering state and remain available after encountering certain replication errors.
  • Adds support for synonyms, which can be defined in a source collection and mapped to search indexes via the Atlas API.
  • Adds stopword token filter for removing tokens that match the specified stop words.
  • Supports explain for $search queries.
  • Fixes an issue with highlighting raising errors when combined with ObjectID equality operators.
  • Improves performance of initial sync indexing.
  • Adds maxNumPassages and maxCharsToExamine for highlight.
  • Improves performance of steady state indexing.
  • Removes downtime requirement when rebuilding modified index definitions.
  • Adds support for wildcard path.
  • Adds a new index option to exclude the norms field, allowing a search index to ignore field length when scoring search results.

  • Adds the tokenOrder option to the autocomplete operator, supporting unordered terms in search queries.

  • Improves error messages to facilitate query debugging, including eliminating stack traces and other Java-specific messages.

  • Adds support for geospatial queries, including:

    • A new geo data type for indexing geographic point and shape coordinates.

    • Two new operators, geoWithin and geoShape, to support queries on geospatial data, such as points and polygons.

  • Adds autocomplete features to support better search-as-you-type functionality, including:

    • Analyzer-agnostic diacritic folding of field values.

    • Scoring options, such as boost and constant.

    • Compound queries that combine autocomplete with other $search operators.

    • n-grams/shingles and edge n-grams from analyzed text.

Note

To review MongoDB Search release notes published before April 2020, see Atlas Changelog.