全文索引 - Pomelo.EFCore.MySql
背景
全文索引:MySQL全文檢索是利用查詢關鍵字和查詢列內容之間的相關度進行檢索,可以利用全文索引來提高匹配的速度。
Pomelo.EntityFrameworkCore.MySql:一款第三方MySQL的Entity Framework Core驅動,在GitHub中開源,性能、功能、下載量均超過Oracle官方提供的版本。QQ群522943763。
使用
全文索引在7月28日被支持,需要安裝?Pomelo.EntityFrameworkCore.MySql 2.0.0-preview3-10049?或更高版本。
創建TestModel類
class TestModel{ ? ?? ?public Guid Id { get; set; } ? ? ?
?public string Text { get; set; } }
創建TestContext類,并使用Fluent API為TestModel中的Text字段添加索引以及全文索引
class TestContext : DbContext{ ? ?? ?public DbSet<TestModel> TestModels { get; set; } ?
? ?
? ?? ? protected override void OnModelCreating(ModelBuilder modelBuilder) ? ? ? ?{ ? ? ? ? ? ? ? ?base.OnModelCreating(modelBuilder);modelBuilder.Entity<TestModel>(e => {e.HasIndex(x => x.Text).IsFullText(); // 添加全文索引});} ? ? ?
? ?? ? ?
? ?? ? ?protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) ? ? ? ?{ ? ? ? ? ? ? ? ?base.OnConfiguring(optionsBuilder);optionsBuilder.UseMySql("server=localhost;uid=root;pwd=123456;database=fttest");} }
即在欲添加全文索引的字段上使用.HasIndex().IsFullText()。
接下來在Main方法中調用DbContext來測試:
class Program{ ? ? ? ?? ? ? ?static void Main(string[] args) ? ? ? ?{ ? ? ? ? ? ?
? ? ? ? ? ?? ?var db = new TestContext();db.Database.EnsureCreated();Console.WriteLine("Hello World!");} }
在Navicat中我們可以看到,全文索引創建成功:
注意事項
.IsFullText()不可和.IsUnique()同時使用。
InnoDB引擎的用戶使用本功能需要MySQL 5.6或更高版本
相關文章:
全球首發免費的MySql for Entity Framework Core
.NET Core 使用Dapper 操作MySQL
在.NET Core中使用MySQL5.7的JSON類型字段
原文地址:http://www.1234.sh/post/full-text-index-in-pomelo-efcore-mysql
.NET社區新聞,深度好文,微信中搜索dotNET跨平臺或掃描二維碼關注
總結
以上是生活随笔為你收集整理的全文索引 - Pomelo.EFCore.MySql的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SOA和微服务之间的区别
- 下一篇: Entity Framework Cor