What problem does it solve?
Working directly with raw Elasticsearch clients in the Exceptionless codebase leads to inconsistent query patterns, unsafe pagination, and bypassed repository conventions. This Skill guides correct use of Foundatio.Repositories abstractions for everyday data access.
Core Features & Use Cases
- Filter and Aggregation Queries: Build Lucene-style FilterExpression queries and AggregationsExpression DSL strings (cardinality, terms, date histograms, sum, min, max, avg) with CountAsync and FindAsync.
- Patching: Apply PartialPatch for field-level updates or ScriptPatch for Painless scripts via PatchAsync and PatchAllAsync, with ImmediateConsistency and notification control options.
- Deep Pagination: Use SearchAfterPaging with NextPageAsync in do/while loops with cancellation token checks instead of offset-based paging.
- Use Case: When adding a feature that counts events per stack with a date histogram, use CountAsync with an AggregationsExpression like "cardinality:stack_id date:date~1d" instead of writing a raw IElasticClient search.
Quick Start
Ask the AI to write a repository query that counts events grouped by stack using Foundatio.Repositories instead of raw IElasticClient calls.