aws / aws/aws-sdk-java-v2

S3VectorClient query filter parameter is complex to use

Open
#6,279 0 comments 0 reactions 0 assignees View on GitHub
feature-request p3
Dominant language
Java
Stars
2.6k
Forks
1k
Avg merge
2d 9h
Merged PRs (30d)
51

Description

### Describe the feature

When using S3 Vector store current api for filtering requires [Document](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/core/document/Document.html) object which makes filtering rather complex.

Writting a filter for example in Python is much easier.

```
query = s3vectors.query_vectors( vectorBucketName="channy-vector-bucket",
indexName="channy-vector-index",
queryVector={"float32":embedding},
topK=3,
filter={"genre":"scifi"},
returnDistance=True,
returnMetadata=True
)
```

It would be great if Java sdk would support filter(String filterJson) or filter(Map) this would make generic dynamic filtering much simpler.

Complex filter for example with aws cli.

`filter '{"$and": [{"category": "tech"}, {"version": {"$gte": "1.0"}}]}'`

Writting it with Java is long with a lot of Document.asString() and Document.asMap() or Document mapBuilder

### Use Case

S3 Vector Store preview querying and filtering vectors.

### Proposed Solution

Allow filter to be plain String which user can serialize on their own or support Map

### Other Information

_No response_

### Acknowledgements

- [x] I may be able to implement this feature request
- [ ] This feature might incur a breaking change

### AWS Java SDK version used

Latest

### JDK version used

21

### Operating System and version

MacOs

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.