DEV Community

정성연
정성연

Posted on

A lightweight ODM for Qdrant — looking for feedback

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")
Enter fullscreen mode Exit fullscreen mode
(Document.category == "tech") & (Document.page >= 1)
Enter fullscreen mode Exit fullscreen mode

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)