What's New in V3.8/V3.9
This content is for v3.9. Switch to the latest version for up-to-date documentation.
The centerpiece of this update, the query engine, has been completely rebuilt. This transformation shifts away from reliance on query strings to a direct integration with Elasticsearch’s DSL (Domain Specific Language), unlocking a broader range of querying capabilities and a more profound integration with Elasticsearch’s advanced features.
Nested Queries and Sorting
- Nested Object Queries: Deep dive into your nested data structures with comprehensive querying support.
- Order By Nested: Enhanced sorting capabilities allow you to order search results based on fields within nested objects.
- Filter Nested Values: Apply query filters to nested data elements returning the desired matches for the data in a nested field.
New where
type clauses
- Phrase Matching: Boost your search precision with enhanced phrase matching, enabling the targeting of exact sequences within text fields.
- Phrase Prefix Matching: Refine your searches with prefix matching, allowing for flexible queries that can match the beginning of phrases.
- Exact Matching: Strengthen your search with improved exact matching capabilities, ensuring only documents that exactly match specified criteria are retrieved.
- whereTimestamp() - convenience clause to help sanitize timestamp values - docs
Sorting Enhancements
- Advanced Sorting Features: Leverage Elasticsearch’s native sorting features, including various sorting modes and handling of missing values.
- Geo-Distance Sorting: Sort data with geographical considerations, enabling spatially-aware application features.
Saving Enhancements
- First Or Create: Streamline data existence checks and creation in one go, optimizing data management workflows.
- First Or Create without Refresh: Enhance performance for non-critical operations by skipping the immediate refresh.
Querying Enhancements
- highlight() - This package now dials into Elaticsearch’s highlight feature - docs
- rawAggregation() - similar to rawSearch(), passing in aggregation DSL queries will be processed and formatted- docs