I’ve been working with Qdrant in a few projects, and as things scaled, I found myself repeatedly dealing with:
- raw payload field strings
- verbose filter construction
- scattered schema and index management
To make this easier to work with, I built a small ODM-style layer on top of Qdrant.
What this tries to solve
The goal is not to hide Qdrant, but to make it more structured and easier to maintain:
- define schema and indexes at the model level
- write filters using Python expressions
- keep CRUD and search logic consistent
Example
class Document(QdrantModel):
__collection__ = "documents"
title: str = PayloadField(index="keyword")
page: int = PayloadField(index="integer")
(Document.category == "tech") & (Document.page >= 1)
Repo
https://github.com/Jeung-SeongYeon/qdrant-odm
Feedback
This is still an early version (v0.3.x), and I’m actively refining the design.
If you have experience with Qdrant or similar systems, I would really appreciate any feedback on:
- API design
- missing features
- overall usability
Also, if you find it useful, a ⭐ would help a lot.
Thanks in advance.
Top comments (0)