Skip to content

Commit 848005a

Browse files
rojiCopilot
andcommitted
Update docs for EF Core 11 full-text/vector API renames (#5315)
Update documentation to reflect API changes from dotnet/efcore#37993: - SqlServerFullTextIndexBuilder: HasKeyIndex→UseKeyIndex, OnCatalog→UseCatalog, WithChangeTracking→HasChangeTracking, HasLanguage→UseLanguage - FreeTextTable/ContainsTable: columnSelector moved after search text (now optional) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent 3d0cda5 commit 848005a

2 files changed

Lines changed: 16 additions & 16 deletions

File tree

entity-framework/core/providers/sql-server/full-text-search.md

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -31,23 +31,23 @@ protected override void OnModelCreating(ModelBuilder modelBuilder)
3131

3232
modelBuilder.Entity<Article>()
3333
.HasFullTextIndex(a => a.Contents)
34-
.HasKeyIndex("PK_Articles")
35-
.OnCatalog("ftCatalog");
34+
.UseKeyIndex("PK_Articles")
35+
.UseCatalog("ftCatalog");
3636
}
3737
```
3838

39-
The `HasKeyIndex()` method specifies the unique, non-nullable, single-column index used as the full-text key for the table (typically the primary key index). `OnCatalog()` assigns the full-text index to a specific catalog.
39+
The `UseKeyIndex()` method specifies the unique, non-nullable, single-column index used as the full-text key for the table (typically the primary key index). `UseCatalog()` assigns the full-text index to a specific catalog.
4040

4141
You can also configure multiple columns and additional options such as per-column languages and change tracking:
4242

4343
```csharp
4444
modelBuilder.Entity<Article>()
4545
.HasFullTextIndex(a => new { a.Title, a.Contents })
46-
.HasKeyIndex("PK_Articles")
47-
.OnCatalog("ftCatalog")
48-
.WithChangeTracking(FullTextChangeTracking.Manual)
49-
.HasLanguage("Title", "English")
50-
.HasLanguage("Contents", "French");
46+
.UseKeyIndex("PK_Articles")
47+
.UseCatalog("ftCatalog")
48+
.HasChangeTracking(FullTextChangeTracking.Manual)
49+
.UseLanguage("Title", "English")
50+
.UseLanguage("Contents", "French");
5151
```
5252

5353
The full-text catalog can also be configured as the default catalog, and with accent sensitivity:
@@ -185,7 +185,7 @@ The above automatically searches across all columns registered for full-text sea
185185
```csharp
186186
var results = await context.Articles
187187
.Join(
188-
context.Articles.FreeTextTable<Article, int>(a => a.Contents, "veggies"),
188+
context.Articles.FreeTextTable<Article, int>("veggies", a => a.Contents),
189189
a => a.Id,
190190
ftt => ftt.Key,
191191
(a, ftt) => new { Article = a, ftt.Rank })
@@ -197,7 +197,7 @@ var results = await context.Articles
197197

198198
```csharp
199199
var results = await context.Articles
200-
.FreeTextTable(a => new { a.Title, a.Contents }, "veggies")
200+
.FreeTextTable("veggies", a => new { a.Title, a.Contents })
201201
.Select(r => new { Article = r.Value, Rank = r.Rank })
202202
.OrderByDescending(r => r.Rank)
203203
.ToListAsync();
@@ -224,7 +224,7 @@ Both table-valued functions support a `topN` parameter to limit the number of re
224224

225225
```csharp
226226
var results = await context.Articles
227-
.FreeTextTable(a => a.Contents, "veggies", topN: 10)
227+
.FreeTextTable("veggies", a => a.Contents, topN: 10)
228228
.Select(r => new { Article = r.Value, Rank = r.Rank })
229229
.OrderByDescending(r => r.Rank)
230230
.ToListAsync();
@@ -236,7 +236,7 @@ Both table-valued functions support specifying a language term for linguistic ma
236236

237237
```csharp
238238
var results = await context.Articles
239-
.FreeTextTable(a => a.Contents, "veggies", languageTerm: "English")
239+
.FreeTextTable("veggies", a => a.Contents, languageTerm: "English")
240240
.Select(r => new { Article = r.Value, Rank = r.Rank })
241241
.ToListAsync();
242242
```

entity-framework/core/what-is-new/ef-core-11.0/whatsnew.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -283,8 +283,8 @@ modelBuilder.HasFullTextCatalog("ftCatalog");
283283

284284
modelBuilder.Entity<Blog>()
285285
.HasFullTextIndex(b => b.FullName)
286-
.HasKeyIndex("PK_Blogs")
287-
.OnCatalog("ftCatalog");
286+
.UseKeyIndex("PK_Blogs")
287+
.UseCatalog("ftCatalog");
288288
```
289289

290290
This generates the following SQL in a migration:
@@ -307,14 +307,14 @@ However, SQL Server also has table-valued function versions of these functions,
307307
```csharp
308308
// Using FreeTextTable with a search query
309309
var results = await context.Blogs
310-
.FreeTextTable(b => b.FullName, "John")
310+
.FreeTextTable("John", b => b.FullName)
311311
.Select(r => new { Blog = r.Value, Rank = r.Rank })
312312
.OrderByDescending(r => r.Rank)
313313
.ToListAsync();
314314

315315
// Using ContainsTable with a search query
316316
var results = await context.Blogs
317-
.ContainsTable(b => b.FullName, "John")
317+
.ContainsTable("John", b => b.FullName)
318318
.Select(r => new { Blog = r.Value, Rank = r.Rank })
319319
.OrderByDescending(r => r.Rank)
320320
.ToListAsync();

0 commit comments

Comments
 (0)