如何在UWP中的SQLite数据库中使用全文搜索
发布时间:2020-12-12 18:54:40 所属栏目:百科 来源:网络整理
导读:我有一个使用SQLite和EF7的UWP项目,我想知道我是否可以使用FTS(全文搜索)?举个例子? 解决方法 EF7 EF Core在SQLite的引擎盖下使用了 Microsoft.Data.Sqlite.此程序包在UWP上加载的SQLite 3版本支持FTS. 一般说明:以下适用于所有平台,而不仅仅是UWP. 默认
我有一个使用SQLite和EF7的UWP项目,我想知道我是否可以使用FTS(全文搜索)?举个例子?
解决方法EF7 EF Core在SQLite的引擎盖下使用了 Microsoft.Data.Sqlite.此程序包在UWP上加载的SQLite 3版本支持FTS.一般说明:以下适用于所有平台,而不仅仅是UWP. 默认情况下,EF Core(从RC2开始)会创建常规表,但您可以手动使其使用FTS. 如果要使用FTS,则需要修改迁移和查询. >迁移/表创建 默认情况下,迁移将创建常规表.要使用FTS,您需要改为制作FTS表.您可以通过手动编写迁移来实现此目的 migrationBuilder.Sql(@"CREATE VIRTUAL TABLE enrondata1 USING fts3(content TEXT);") // FTS table migrationBuilder.Sql(@"CREATE TABLE enrondata2(content TEXT);"); // ordinary table 如果您不使用迁移,则仍需要显式提供此SQL.而不是使用context.Database.EnsureCreate(),调用context.Database.ExecuteSqlCommand(string sql)来创建表. >查询 默认情况下,EF Core在构造查询时将使用“LIKE”.要利用FTS,您需要使用“MATCH”. context.EnronData2.FromSql(@"SELECT count(*) FROM enrondata1 WHERE content MATCH 'linux';"); // uses FTS search context.EnronData1.Where(e => e.Content.Contains("linux")); // uses regular,slow search 有关详细信息,请参阅https://www.sqlite.org/fts3.html#section_1 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |