PostgreSQL full-text search can be used as the backing implementation for Flex search operations. Your application code should depend on IFlexSearchStore, while Flex provides the provider bridge and wiring.
Important concepts
IFlexSearchStore is the contract: app code performs searches and indexing through the shared interface.
Search configuration: PostgreSQL uses a text search configuration (for example english) to control tokenization and stemming.
Provider bridge: the PostgreSQL implementation is exposed via an IFlexSearchStoreBridge internally, but most consumers only need IFlexSearchStore.
Configuration in DI
Add the provider in your DI composition root (commonly in EndPoints/...CommonConfigs/OtherApplicationServicesConfig.cs or wherever you centralize registrations).
// using Sumeru.Flex; // IFlexSearchStorepublicstaticclassOtherApplicationServicesConfig{publicstaticIServiceCollectionAddOtherApplicationServices(thisIServiceCollection services,IConfiguration configuration){ // Registers PostgreSQL full-text search as the IFlexSearchStore bridge. // Flex auto-wires generated Queries/Plugins that *use* IFlexSearchStore.services.AddFlexPostgreSqlSearchStore(configuration);return services;}}
appsettings.json
Configuration is read from FlexBase:DataStores:Search:PostgreSql.
Examples (template-based)
These examples mirror the generated Query and PostBus plugin templates. You do not register these types manually—Flex discovers and wires generated Queries/Handlers/Plugins automatically.
Search a paged list (Query)
PostgreSQL considerations
Ensure your database/table setup supports full-text indexes for your data shape.
SearchConfiguration should match the language/analyzer behavior you expect (for example simple vs english).