-
Notifications
You must be signed in to change notification settings - Fork 39
EF-281: Support building "Atlas" search indexes #264
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This pull request adds comprehensive support for building MongoDB Atlas search indexes through a fluent API in Entity Framework Core. The feature enables developers to define and create search indexes declaratively through the model builder, with support for both static and dynamic mappings across various field types.
Key Changes
- Introduced fluent API for configuring Atlas search indexes with support for multiple field types (autocomplete, boolean, date, geo, number, objectId, string, token, uuid)
- Added comprehensive test coverage with 4200+ lines of functional tests and negative test cases
- Extended database creation infrastructure to handle search index creation and lifecycle management
Reviewed changes
Copilot reviewed 86 out of 89 changed files in this pull request and generated 11 comments.
Show a summary per file
| File | Description |
|---|---|
| SearchIndexTests.cs | Comprehensive functional tests covering all search index types and configurations |
| SearchIndexNegativeTests.cs | Error handling tests for invalid search index configurations |
| MongoDatabaseCreator.cs | Extended to support creating and waiting for search indexes alongside vector indexes |
| IMongoDatabaseCreator.cs | Interface updates for search index methods |
| Metadata/Search/* | 50+ new classes defining search index structure, builders, and configuration options |
| SingleEntityDbContext.cs | Refactored to use CollectionNamespace instead of string collection names |
| ConnectionTests.cs | Updated to use renamed test context class |
| VectorIndexOptions.cs | Documentation updates changing "Atlas" to "MongoDB" |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
tests/MongoDB.EntityFrameworkCore.FunctionalTests/Storage/SearchIndexTests.cs
Outdated
Show resolved
Hide resolved
tests/MongoDB.EntityFrameworkCore.FunctionalTests/Storage/SearchIndexTests.cs
Outdated
Show resolved
Hide resolved
tests/MongoDB.EntityFrameworkCore.FunctionalTests/Storage/SearchIndexTests.cs
Outdated
Show resolved
Hide resolved
tests/MongoDB.EntityFrameworkCore.FunctionalTests/Storage/SearchIndexTests.cs
Outdated
Show resolved
Hide resolved
tests/MongoDB.EntityFrameworkCore.FunctionalTests/Storage/SearchIndexTests.cs
Outdated
Show resolved
Hide resolved
tests/MongoDB.EntityFrameworkCore.FunctionalTests/Storage/SearchIndexTests.cs
Outdated
Show resolved
Hide resolved
tests/MongoDB.EntityFrameworkCore.FunctionalTests/Storage/SearchIndexTests.cs
Outdated
Show resolved
Hide resolved
tests/MongoDB.EntityFrameworkCore.FunctionalTests/Storage/SearchIndexTests.cs
Outdated
Show resolved
Hide resolved
...ongoDB.EntityFrameworkCore/Metadata/Search/Definitions/WordDelimiterGraphFilterDefinition.cs
Outdated
Show resolved
Hide resolved
src/MongoDB.EntityFrameworkCore/Metadata/Search/Definitions/SearchIndexDefinitionExtensions.cs
Show resolved
Hide resolved
5eaa7c6 to
24f5547
Compare
Fluent API for building search indexes.
24f5547 to
bb24d53
Compare
Fluent API for building search indexes.