|
| 1 | +# Changelog |
| 2 | + |
| 3 | +All notable changes to this project will be documented in this file. |
| 4 | + |
| 5 | +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), |
| 6 | +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). |
| 7 | + |
| 8 | +## [1.0.0] - 2025-01-24 |
| 9 | + |
| 10 | +### Initial Release |
| 11 | + |
| 12 | +#### Added |
| 13 | +- **Core Query Builder** - Fluent API for constructing Vespa YQL queries |
| 14 | +- **Type-Safe Field Operations** - Builder pattern for field conditions with compile-time safety |
| 15 | +- **Comprehensive Operators** - Support for all major comparison, collection, and text operators |
| 16 | +- **Vector Search Support** - First-class support for `nearestNeighbor` operations in WHERE clauses and rank expressions |
| 17 | +- **Boolean Logic** - Full support for AND, OR, and NOT combinations with proper precedence |
| 18 | +- **Range Conditions** - Convenient `Between()` method for numeric and date ranges |
| 19 | +- **SameElement Conditions** - Support for complex array/struct querying with `ContainsSameElement()` |
| 20 | +- **Rank Expressions** - Flexible ranking with vector search, text matching, and custom expressions |
| 21 | +- **Functional Options** - Extensible configuration using functional options pattern |
| 22 | +- **UserQuery Support** - Integration with Vespa's `userQuery()` function for text search |
| 23 | +- **Pagination Support** - Built-in support for result pagination with `WithOffset()` and `WithHits()` |
| 24 | + |
| 25 | +#### Features |
| 26 | + |
| 27 | +##### Query Building |
| 28 | +- Fluent API with method chaining |
| 29 | +- Type-safe field operations |
| 30 | +- Comprehensive validation with detailed error messages |
| 31 | +- Support for all Vespa YQL operators |
| 32 | + |
| 33 | +##### Vector Search |
| 34 | +- `NearestNeighbor` conditions in WHERE clauses |
| 35 | +- Configurable parameters: label, distance threshold, approximate search |
| 36 | +- Multi-vector search scenarios in rank expressions |
| 37 | +- Support for both approximate and exact vector search |
| 38 | + |
| 39 | +##### Text Search |
| 40 | +- Multiple text matching types: exact, phrase, fuzzy |
| 41 | +- Integration with `userQuery()` for flexible text search |
| 42 | +- Support for custom default indexes |
| 43 | + |
| 44 | +##### Boolean Logic |
| 45 | +- Nested AND/OR/NOT combinations |
| 46 | +- XOR patterns using NOT with AND/OR |
| 47 | +- Proper parenthesis generation for complex logic |
| 48 | + |
| 49 | +##### Complex Data Structures |
| 50 | +- `sameElement` support for arrays of structs/maps |
| 51 | +- Proper handling of Vespa's sameElement limitations |
| 52 | +- Workarounds for IN/OR restrictions within sameElement |
| 53 | + |
| 54 | +##### Developer Experience |
| 55 | +- Extensive documentation with examples |
| 56 | +- Comprehensive test coverage (95%+) |
| 57 | +- Real-world usage examples |
| 58 | +- Clear error messages and validation |
| 59 | + |
| 60 | +#### Technical Details |
| 61 | +- **Language**: Go 1.21+ |
| 62 | +- **Dependencies**: Zero external dependencies (standard library only) |
| 63 | +- **Testing**: Comprehensive test suite with edge cases |
| 64 | +- **Documentation**: Extensive README with examples and best practices |
| 65 | + |
| 66 | +#### Supported Vespa Features |
| 67 | +- All YQL operators and functions |
| 68 | +- Vector search with HNSW indexes |
| 69 | +- Text search and ranking |
| 70 | +- Complex field structures |
| 71 | +- Pagination |
| 72 | +- Custom ranking expressions |
| 73 | +- Input parameters for vectors and other data |
| 74 | + |
| 75 | +--- |
| 76 | + |
| 77 | +## Contributing |
| 78 | + |
| 79 | +When contributing to this project, please: |
| 80 | +1. Update the CHANGELOG.md with your changes |
| 81 | +2. Follow semantic versioning for version bumps |
| 82 | +3. Include tests for new features |
| 83 | +4. Update documentation as needed |
0 commit comments