Metadata-Version: 2.4
Name: es-query-builder
Version: 0.1.0
Summary: A lightweight Elasticsearch DSL query builder
Author-email: SG Make A Fortune <2445045992@qq.com>
License: MIT
Keywords: elasticsearch,dsl,query,python
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: elasticsearch-dsl>=8.15
Requires-Dist: pydantic>=2.12.5
Dynamic: license-file

# es-query-builder

一个轻量、可扩展的 Elasticsearch DSL 查询构建器，适用于 FastAPI / Django / Flask 等后端服务。

## 特性
- 声明式查询参数
- 支持 eq / range / wildcard / fulltext / phrase
- 游标分页友好
- 与框架解耦

## 安装

```bash
pip install es-query-builder
```

## 使用

```python
from es-query-builder import BaseQuery
from ... import RepositoryDocument


class RepoQuery(BaseQuery):
    stars__gte: int | None = None
    language: str | None = None
    search: list[str] | None = None

    class Constants:
        model = RepositoryDocument
        search = ["name", "description", "readme_content"]

query = RepoQuery(
    stars__gte=100,
    search=["fastapi async"],
)

conditions = query.to_es_conditions
```
