全文索引 - Pomelo.EFCore.MySql
背景
全文索引:MySQL全文檢索是利用查詢關(guān)鍵字和查詢列內(nèi)容之間的相關(guān)度進(jìn)行檢索,可以利用全文索引來提高匹配的速度。
Pomelo.EntityFrameworkCore.MySql:一款第三方MySQL的Entity Framework Core驅(qū)動(dòng),在GitHub中開源,性能、功能、下載量均超過Oracle官方提供的版本。QQ群522943763。
使用
全文索引在7月28日被支持,需要安裝?Pomelo.EntityFrameworkCore.MySql 2.0.0-preview3-10049?或更高版本。
創(chuàng)建TestModel類
class TestModel{ ? ?? ?public Guid Id { get; set; } ? ? ?
?public string Text { get; set; } }
創(chuàng)建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方法中調(diào)用DbContext來測(cè)試:
class Program{ ? ? ? ?? ? ? ?static void Main(string[] args) ? ? ? ?{ ? ? ? ? ? ?
? ? ? ? ? ?? ?var db = new TestContext();db.Database.EnsureCreated();Console.WriteLine("Hello World!");} }
在Navicat中我們可以看到,全文索引創(chuàng)建成功:
注意事項(xiàng)
.IsFullText()不可和.IsUnique()同時(shí)使用。
InnoDB引擎的用戶使用本功能需要MySQL 5.6或更高版本
相關(guān)文章:
全球首發(fā)免費(fèi)的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社區(qū)新聞,深度好文,微信中搜索dotNET跨平臺(tái)或掃描二維碼關(guān)注
總結(jié)
以上是生活随笔為你收集整理的全文索引 - Pomelo.EFCore.MySql的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SOA和微服务之间的区别
- 下一篇: Entity Framework Cor