Description

This PR adds support for Qdrant - https://qdrant.tech, to be used as a vector store.

You can run Qdrant with

docker run -p 6333:6333 -p 6334:6334 qdrant/qdrant
  • Uses a custom parser for converting Spring AI filters to Qdrant-compatible GRPC filters.

  • Uses a custom parser for converting Spring AI metadata(Map<String, Object>) to Qdrant GRPC payload.

  • Integration tests have been added for the implemented methods and metadata filters with a locally spawned test container.

  • The Qdrant Java client uses the GRPC interface at port 6334.

Resolves #331

Comment From: Anush008

The filters are yet to support IN and NIN operations. Javadoc to be added.

Comment From: tzolov

@Anush008 thank you for the valuable contribution! I will review it shortly.

Comment From: tzolov

Great job @Anush008 ! thank you for the contribution.

Rebased, squashed and following additional changes made: - Fix poms parent to 0.8.1-SNAPSHOT. - Rename ObjectFactory into QdrantObjectFactor. - Rename ValueFactory into QdrantValueFactory. - Move the org.springframework.ai.vectorstore package into org.springframework.ai.vectorstore.qdrant. - Add missing Autoconfigure definition. - Add missing license and JavaDocs. - Minor code style improvmentes. - Move the qdrant version to the main pom - Add QdrantVectorStoreAutoConfigurationIT - Remove guava dependency - Improve gdrant.adoc conent and structure. - Remove the grpc-protobuf dependency

Merged at ea0b439dacf30c6a6d7bb9cd06f26d098eb66aff

Comment From: Anush008

πŸŽŠπŸŽŠπŸŽ‰πŸŽŠπŸŽ‰