Changelog
v0.6.11
Released on: 2025-05-22
Enhanced aggregation support with new aggregation types
Implemented ESDateHistogramParams with full parameter support (calendar_interval, fixed_interval, format, time_zone, etc.)
Added 7 new aggregation types with TypeDict definitions:
- cardinality: Count distinct values with precision control - percentiles: Calculate value percentiles with configurable algorithms - stats: Basic statistics (count, min, max, avg, sum) - extended_stats: Extended statistics including variance and standard deviation - value_count: Count non-null values in a field - range: Numeric range bucketing - date_range: Date range bucketing with timezone support - Added corresponding response TypeDicts for all new aggregations - Updated ESAggsResponse union type to include all new response types
v0.6.10
Released on: 2025-05-20
Added count method to ESModel for counting documents in the index.
v0.6.9
Released on: 2025-05-15
Updated requeirements and tests to support elasticsearch 9.x.x versions
v0.6.8
Released on: 2025-05-03
Support newer Pydantic versions
dense_vector support
v0.6.7
Released on: 2024-11-23
You can now raise esorm.error.ConflictError to retry in retry_on_conflict decorated functions and methods. It is useful if you want to force retry by your logic not just with an ES conflict.
v0.6.6
Released on: 2024-11-21
Make Sort and Pagination wrapped classes serializable (by pickle)
v0.6.5
Released on: 2024-11-21
Fixed watcher naming
v0.6.4
Released on: 2024-11-20
Auto reload in retry_on_conflict if it decorates a model method
Fixed concurrency check in bulk operations, when _seq_no=0
v0.6.3
Released on: 2024-11-08
Float types no longer show Pydantic warnings on save
Fix index argument of Field
Added tests for ES fields
v0.6.2
Released on: 2024-11-06
Add support for 7.x elasticsearch lib
support Python 3.8 again
v0.6.1
Released on: 2024-10-03
The connect function accepts None in hosts argument. This solves #21.
v0.6.0
Released on: 2024-10-03
Field alias support: you can name a field other than the name in ES
IP addresses (IPvAddressAny) support
Enum field support
v0.5.2
Released on: 2024-08-02
Fixed: list of ES primitives now works
v0.5.1
Released on: 2024-08-02
Support list of primitives
Updated documentation
Added tests
v0.5.0
Released on: 2024-07-31
Improvements
Support for UUID, Path and pydantic_core.Url types
Fixed conversion of basic python types
time is now actually stored as date in the format of 1970-01-01 + time
Improved documentation
More tests
Minor optimizations
Fixes
v0.4.8
Released on: 2024-07-26
Added support for unsigned_long ES field type
Support for newer (Python >= 3.10) union syntax e.g.: int | None
Pydantic’s Annotated type is also supported
v0.4.7
Released on: 2024-06-18
Added index argument to other class methods
v0.4.6
Released on: 2024-06-17
It is possible to add index name as an argument, it is useful, when you use class methods
v0.4.5
Released on: 2024-05-22
Support for typing.Literal
v0.4.4
Released on: 2024-05-18
Fixed index template
The default prefix now really “esorm_”
No more fixed “-” prefix separator
Now it works as it is in the documentation
Replaced the deprecated method for creating index templates in newer ESs
Test for index templates
Improved tests
v0.4.3
Released on: 2024-05-07
Fix: get method is static method, so it is not compatible with model’s __routing__
v0.4.2
Released on: 2024-05-07
Fixed get method when id field is an integer.
Test for integer ids
Test for property ids
v0.4.1
Released on: 2024-05-07
Retry on conflict decorator to automatically retry conflicted operations
Simplified ESModelTimestamp save. The logic is simple now: created_at is filled only if it is a new model instance (created_at is None).
v0.4.0
Released on: 2024-05-07
Support for Optimistic Concurrency Check (OCC)
It uses _primary_term and _seq_no for save operations to ensure consistency
The ES private fields are accessible through the model (_version, _primary_term, _seq_no)
_id and private fields are stored after save
Bulk operations uses OCC too
Bulk operations raise BulkError, which stores all documents which had errors
New documents of ESModelTimestamp with bulk operations will have created_at filled automatically
Reload documents
Fixed routing for delete operation
Improved documentation
v0.3.2
Released on: 2024-05-03
Lazy properties are now work with ESBaseModel too
Lazy properties are now supports nested documents (truly recursive)
Python 3.8 support back
v0.3.1
Released on: 2024-04-29
The most important change is to introduce ESBaseModel.
Full Changelog: https://github.com/wallneradam/esorm/compare/v0.3.0…v0.3.1
v0.3.0
Released on: 2024-01-25
Replaced deprecated datetime.utcnow
.all() method for getting all documents in an index
Reworked lazy properties, which has recursion protection
Improved documentation: - pagination and sorting - added advanced.md, which contains advanced features documentation - Fixed dark mode colors of reference
Improved unit tests
v0.2.1
Released on: 2024-01-22
Aggregation TypeDicts are refactored.
v0.2.0
Released on: 2024-01-18
Aggregation support
Improved documentation
v0.1.2
Released on: 2024-01-17
Some minor fixes