之前做的很多项目都使用solr/elasticsearch作为全文检索引擎,它们功能全面而强大,但是对于较小的项目而言,构建和维护成本显然过高,尤其是从关系数据库/文档数据库到全文检索引擎的数据同步工作非常繁琐,且容易出错。
记得很久以前就知道d4f427cc747b68944a17b5c1f7cda71e.html">postgresql数据库内置全文检索,最近发现这个数据库越来越火,于是就又研究了一番,欣喜的发现居然支持ef core,于是对其进行了一些研究,并整理心得如下。
前提本文假设读者熟悉entity framework core的基本概念和基本使用。
目的建立dotnet core项目,使用postgres数据库和ef core,实现常见的全文检索功能,包括
建立索引字段
基本查询
查询结果排名
查询结果高亮显示
步骤1 - 新建项目并引入packages<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>netcoreapp3.1</TargetFramework> </PropertyGroup> <ItemGroup> <PackageReference Include="EFCore.NamingConventions" Version="1.1.0" /> <PackageReference Include="Microsoft.Extensions.Logging.Console" Version="3.1.4" /> <PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="3.1.3" /> <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="3.1.3" /> </ItemGroup> </Project>