Added basic search implementation with display components

This commit is contained in:
Vincent Allen
2025-10-16 09:24:52 -04:00
852 changed files with 6519 additions and 29467 deletions

View File

@@ -30,14 +30,6 @@ public class ApplicationDbContext(DbContextOptions<ApplicationDbContext> options
{
base.OnModelCreating(modelBuilder);
/*
modelBuilder.Entity<ArtifactEntry>()
.HasMany(p => p.Files)
.WithOne(p => p.ParentArtifactEntry)
.IsRequired(false);
*/
// Make other associations
modelBuilder.Entity<ArtifactEntry>()
.HasMany(a => a.RelatedTo)
.WithMany(a => a.RelatedBy)
@@ -76,5 +68,79 @@ public class ApplicationDbContext(DbContextOptions<ApplicationDbContext> options
sourceDictionary => new Dictionary<string, string>(sourceDictionary)
);
modelBuilder.Entity<ArtifactGrouping>()
.HasGeneratedTsVectorColumn(
p => p.AllSearchVector,
"english",
p => p.AllSearchString
)
.HasIndex(p => p.AllSearchVector)
.HasMethod("GIN");
modelBuilder.Entity<ArtifactGrouping>()
.HasGeneratedTsVectorColumn(
p => p.TagsSearchVector,
"english",
p => p.TagsSearchString
)
.HasIndex(p => p.TagsSearchVector)
.HasMethod("GIN");
modelBuilder.Entity<ArtifactGrouping>()
.HasGeneratedTsVectorColumn(
p => p.DefectsSearchVector,
"english",
p => p.DefectsSearchString
)
.HasIndex(p => p.DefectsSearchVector)
.HasMethod("GIN");
modelBuilder.Entity<ArtifactGrouping>()
.HasGeneratedTsVectorColumn(
p => p.ListedNamesSearchVector,
"english",
p => p.ListedNamesSearchString
)
.HasIndex(p => p.ListedNamesSearchVector)
.HasMethod("GIN");
modelBuilder.Entity<ArtifactGrouping>()
.HasGeneratedTsVectorColumn(
p => p.TitleSearchVector,
"english",
p => p.TitleSearchString
)
.HasIndex(p => p.TitleSearchVector)
.HasMethod("GIN");
modelBuilder.Entity<ArtifactGrouping>()
.HasGeneratedTsVectorColumn(
p => p.DescriptionSearchVector,
"english",
p => p.DescriptionSearchString
)
.HasIndex(p => p.DescriptionSearchVector)
.HasMethod("GIN");
modelBuilder.Entity<ArtifactGrouping>()
.HasGeneratedTsVectorColumn(
p => p.FilenamesSearchVector,
"english",
p => p.FilenamesSearchString
)
.HasIndex(p => p.FilenamesSearchVector)
.HasMethod("GIN");
modelBuilder.Entity<ArtifactGrouping>()
.HasGeneratedTsVectorColumn(
p => p.FileContentSearchVector,
"english",
p => p.FileContentSearchString
)
.HasIndex(p => p.FileContentSearchVector)
.HasMethod("GIN");
}
}