<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/amazon-s3-vectors-now-supports-metadata-pre-filtering-for-higher-recall-on-filtered-searches-ddolirhc3" -->

---
title: Amazon S3 Vectors now supports metadata pre-filtering...
description: Amazon S3 Vectors now supports metadata pre-filtering, which resolves metadata filters before running similarity search rather than in tandem with it. This can...
canonical: https://daily.dev/posts/amazon-s3-vectors-now-supports-metadata-pre-filtering-for-higher-recall-on-filtered-searches-ddolirhc3
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Amazon S3 Vectors now supports metadata pre-filtering for higher recall on filtered searches | daily.dev
og:description: Amazon S3 Vectors now supports metadata pre-filtering, which resolves metadata filters before running similarity search rather than in tandem with it. This can...
og:url: https://daily.dev/posts/amazon-s3-vectors-now-supports-metadata-pre-filtering-for-higher-recall-on-filtered-searches-ddolirhc3
og:image: https://api.daily.dev/og/posts/DDOLIRhc3.png
og:image:alt: Amazon S3 Vectors now supports metadata pre-filtering for higher recall on filtered searches
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Amazon S3 Vectors now supports metadata pre-filtering for higher recall on filtered searches

**[AWS](https://daily.dev/sources/aws)** · 8 min read · 0 upvotes · 0 comments

## Summary

Amazon S3 Vectors now supports metadata pre-filtering, which resolves metadata filters before running similarity search rather than in tandem with it. This can return up to 5x more matching vectors on highly selective filtered queries, useful for multi-tenant RAG, agentic apps, and document search scoped by client, category, or date. Filters support equality, ranges, set membership, boolean logic, and a new $startsWith prefix operator for paths and hierarchical keys, each vector supports up to 2KB of metadata and 100 filter constraints per query. Existing indexes default to the old CLASSIC mode and must be switched to ENHANCED via UpdateIndexMode or a bucket-level default to get pre-filtering, at no additional cost and without re-ingesting vectors.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://aws.amazon.com/blogs/aws/amazon-s3-vectors-now-supports-metadata-pre-filtering-for-higher-recall-on-filtered-searches>

## Questions this post answers

### What does metadata pre-filtering in Amazon S3 Vectors do differently from the old CLASSIC index mode?

It resolves the metadata filter before running the similarity search, so the search only scans vectors matching the filter instead of scanning the whole index and validating each candidate against the filter as it goes. On an ENHANCED index this can return up to 5x more of the matching vectors on highly selective filters compared to the same query on a CLASSIC index, with no re-ingestion or query changes required.

_daily.dev surfaces updates like this for engineers tuning RAG and vector search recall._

### How do I enable pre-filtering on an existing Amazon S3 Vectors index?

Call the UpdateIndexMode API with --index-mode ENHANCED on the vector index. Existing indexes default to CLASSIC mode and stay that way until updated; the change takes effect in place with no re-ingestion and no query changes. You can also set ENHANCED as the bucket-wide default via put-vector-bucket-default-index-mode so new indexes use it automatically.

_Developers rolling out vector search upgrades can track AWS changes like this on daily.dev._

### What is the $startsWith filter operator in Amazon S3 Vectors used for?

It performs prefix matching on paths, URLs, and hierarchical keys, for example scoping a search to a subtree with a filter like {"$startsWith": {"document_id": "matter-4417/exhibits/"}}. It joins existing operators such as equality, numeric range, set membership, existence checks, and boolean logic with $and and $or, and a single query supports up to 100 filter constraints.

_daily.dev helps developers building scoped document search stay current on vector database filtering options._

## Similar posts on daily.dev

- [Amazon S3 Vectors introduces metadata pre-filtering for up to 5x higher recall on filtered search](https://daily.dev/posts/amazon-s3-vectors-introduces-metadata-pre-filtering-for-up-to-5x-higher-recall-on-filtered-search-vtdkfvhmr) · AWS · 0 upvotes · 0 comments
- [Amazon S3 Vectors metadata pre-filtering is now available in AWS GovCloud \(US\) Regions](https://daily.dev/posts/amazon-s3-vectors-metadata-pre-filtering-is-now-available-in-aws-govcloud-us-regions-hyzskmbpf) · AWS · 0 upvotes · 0 comments
- [Metadata Filtering: Boost Vector Search Precision at Scale](https://daily.dev/posts/metadata-filtering-boost-vector-search-precision-at-scale-11zmblbec) · Redis · 0 upvotes · 0 comments
- [S3 Vectors with OpenSearch: Cost-Efficient Hybrid Vector Search](https://daily.dev/posts/s3-vectors-with-opensearch-cost-efficient-hybrid-vector-search-xabkmmtbp) · BigData Boutique blog · 1 upvotes · 0 comments
- [AWS Introduces Native Vector Search for DynamoDB](https://daily.dev/posts/aws-introduces-native-vector-search-for-dynamodb-nn2cx8i4z) · InfoQ · 0 upvotes · 0 comments

---

Tags: [#aws](https://daily.dev/tags/aws), [#backend](https://daily.dev/tags/backend), [#rag](https://daily.dev/tags/rag), [#vector-search](https://daily.dev/tags/vector-search)

[View this post on daily.dev](https://daily.dev/posts/amazon-s3-vectors-now-supports-metadata-pre-filtering-for-higher-recall-on-filtered-searches-ddolirhc3)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Amazon S3 Vectors now supports metadata pre-filtering for higher recall on filtered searches","url":"https://daily.dev/posts/amazon-s3-vectors-now-supports-metadata-pre-filtering-for-higher-recall-on-filtered-searches-ddolirhc3","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/amazon-s3-vectors-now-supports-metadata-pre-filtering-for-higher-recall-on-filtered-searches-ddolirhc3"},"datePublished":"2026-09-30T21:32:38.537Z","dateModified":"2026-09-30T21:33:04.611Z","description":"Amazon S3 Vectors now supports metadata pre-filtering, which resolves metadata filters before running similarity search rather than in tandem with it. This can...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/2e27a177e6d2c7a8447c0f03dc59eb74?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/2e27a177e6d2c7a8447c0f03dc59eb74?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"AWS","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"AWS","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/aws","url":"https://daily.dev/sources/aws"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/amazon-s3-vectors-now-supports-metadata-pre-filtering-for-higher-recall-on-filtered-searches-ddolirhc3","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"aws,backend,rag,vector-search","timeRequired":"PT8M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"AWS","item":"https://daily.dev/sources/aws"},{"@type":"ListItem","position":3,"name":"Amazon S3 Vectors now supports metadata pre-filtering for higher recall on filtered searches"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/amazon-s3-vectors-now-supports-metadata-pre-filtering-for-higher-recall-on-filtered-searches-ddolirhc3#faq","mainEntity":[{"@type":"Question","name":"What does metadata pre-filtering in Amazon S3 Vectors do differently from the old CLASSIC index mode?","acceptedAnswer":{"@type":"Answer","text":"It resolves the metadata filter before running the similarity search, so the search only scans vectors matching the filter instead of scanning the whole index and validating each candidate against the filter as it goes. On an ENHANCED index this can return up to 5x more of the matching vectors on highly selective filters compared to the same query on a CLASSIC index, with no re-ingestion or query changes required. daily.dev surfaces updates like this for engineers tuning RAG and vector search recall."}},{"@type":"Question","name":"How do I enable pre-filtering on an existing Amazon S3 Vectors index?","acceptedAnswer":{"@type":"Answer","text":"Call the UpdateIndexMode API with --index-mode ENHANCED on the vector index. Existing indexes default to CLASSIC mode and stay that way until updated; the change takes effect in place with no re-ingestion and no query changes. You can also set ENHANCED as the bucket-wide default via put-vector-bucket-default-index-mode so new indexes use it automatically. Developers rolling out vector search upgrades can track AWS changes like this on daily.dev."}},{"@type":"Question","name":"What is the $startsWith filter operator in Amazon S3 Vectors used for?","acceptedAnswer":{"@type":"Answer","text":"It performs prefix matching on paths, URLs, and hierarchical keys, for example scoping a search to a subtree with a filter like {\"$startsWith\": {\"document_id\": \"matter-4417/exhibits/\"}}. It joins existing operators such as equality, numeric range, set membership, existence checks, and boolean logic with $and and $or, and a single query supports up to 100 filter constraints. daily.dev helps developers building scoped document search stay current on vector database filtering options."}}]}
```

