MatinDeWet.Searchable.PostgreSQL
1.0.0
dotnet add package MatinDeWet.Searchable.PostgreSQL --version 1.0.0
NuGet\Install-Package MatinDeWet.Searchable.PostgreSQL -Version 1.0.0
<PackageReference Include="MatinDeWet.Searchable.PostgreSQL" Version="1.0.0" />
<PackageVersion Include="MatinDeWet.Searchable.PostgreSQL" Version="1.0.0" />
<PackageReference Include="MatinDeWet.Searchable.PostgreSQL" />
paket add MatinDeWet.Searchable.PostgreSQL --version 1.0.0
#r "nuget: MatinDeWet.Searchable.PostgreSQL, 1.0.0"
#:package MatinDeWet.Searchable.PostgreSQL@1.0.0
#addin nuget:?package=MatinDeWet.Searchable.PostgreSQL&version=1.0.0
#tool nuget:?package=MatinDeWet.Searchable.PostgreSQL&version=1.0.0
Searchable.PostgreSQL
PostgreSQL-specific dynamic search helpers for Entity Framework Core.
This package provides a focused API for building PostgreSQL-backed search filters over IQueryable<T> using expression-based property selectors for both full-text search and ILIKE pattern matching.
Package
dotnet add package MatinDeWet.Searchable.PostgreSQL
What It Does
- Builds dynamic search predicates from a request object.
- Supports PostgreSQL full-text search via
tsvector+plainto_tsquery. - Supports
ILIKEmodes:Contains,StartsWith,EndsWith, andExact. - Escapes wildcard characters for safe
ILIKEusage. - Supports searching a single property or multiple properties with
OR/ANDlogic.
Usages
1. Full-text search on a tsvector property
Use this when your entity has a mapped PostgreSQL tsvector property and you want to point directly to that property with an expression selector.
using NpgsqlTypes;
using Searchable.PostgreSQL;
using Searchable.PostgreSQL.Contracts;
IQueryable<Person> query = dbContext.People;
ISearchableRequest request = new SearchableRequest("john manager");
query = query.FullTextSearch(
request,
person => person.SearchVector,
language: "english");
The selector expression is translated server-side, so you get the same simple property-targeting style as the single-property ILIKE API.
2. ILIKE search on a single property
using Searchable.PostgreSQL;
using Searchable.PostgreSQL.Enums;
query = query.ILikeSearch(
request,
person => person.Email!,
ILikeMatchModeEnum.Contains);
3. ILIKE search across multiple properties
query = query.ILikeSearch(
request,
[person => person.FirstName!, person => person.LastName!, person => person.Email!],
ILikeMatchModeEnum.StartsWith,
useOrLogic: true);
4. Match modes
ILikeMatchModeEnum controls the generated PostgreSQL pattern:
Contains:%term%StartsWith:term%EndsWith:%termExact:term
API Surface
Searchable.PostgreSQL.SearchableExtensionsSearchable.PostgreSQL.Contracts.ISearchableRequestSearchable.PostgreSQL.Enums.ILikeMatchModeEnum
The package uses the GPL-3.0-only license.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Npgsql.EntityFrameworkCore.PostgreSQL (>= 10.0.2)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0 | 166 | 6/13/2026 |