当前位置:首页 > APP资源 > 正文内容

dapper分页查询(dapper连接sqlite)

APP资源9个月前 (12-29)348

Redis Search是一个Redis模块,它使用压缩的倒排索引来实现快速的索引和低内存占用。Redis Search可以对Redis数据进行精确短语匹配、模糊搜索、数值过滤、地理空间筛选等多种搜索功能。Redis Search还支持聚合、高亮、词干提取、拼写纠错等特性。

RediSearch查询语言类似于SQL,但更加简洁和灵活。你可以使用RediSearch命令来创建索引、添加文档、搜索文档、更新文档、删除文档等。

与elasticsearch的比较

elasticsearch是另一个流行的开源搜索引擎,它也支持全文搜索和聚合功能。那么,Redis Search和elasticsearch有什么区别和优势呢?

Redis Search是基于内存的,它可以提供更高的性能和更低的延迟。elasticsearch则是基于磁盘的,它需要依赖缓存来提高速度。

Redis Search是一个Redis模块,它可以直接在Redis中运行,无需额外的安装和配置。elasticsearch则需要单独部署和管理。

Redis Search支持多种扩展模块,如RedisJSON(用于处理JSON文档),RedisGraph(用于处理图数据),RedisTimeSeries(用于处理时间序列数据),RediSearch(用于处理全文搜索)等。elasticsearch则需要依赖插件来扩展其功能。

一、 Redis Search的安装

有多种方式可以安装和使用Redis Search,最简单的方式是使用Redis Stack Docker镜像,它已经集成了Redis和多个模块,包括Redis Search。只需运行一条命令,就可以在本地创建一个RediSearch容器:

要连接到这个实例,运行:

二、 Redis Search的使用

要使用Redis Search,你首先需要在Redis数据上声明索引,然后使用RediSearch查询语言来查询这些数据。

1、创建索引

要创建一个索引,你需要使用FT.CREATE命令,并指定索引名、索引选项和字段名。例如,要创建一个名为blog的索引,用于存储博客文章的标题、内容和标签,你可以运行:

这个命令会创建一个名为blog的索引,它会自动索引所有以blog:为前缀的散列键。它还会指定三个字段:title(文本类型,权重为5.0),content(文本类型,权重为1.0)和tags(标签类型,分隔符为逗号)。

2、添加文档

要添加一个文档到索引中,你需要使用FT.ADD命令,并指定文档ID、字段值和分数。例如,要添加一篇博客文章到blog索引中,你可以运行:

这个命令会添加一个ID为blog:1的文档到blog索引中,并给它一个分数为1.0(默认为1.0)。它还会指定三个字段的值:title为"Hello Redis Search",content为"This is a blog post about Redis Search, a query and full-text search engine for Redis.“,tags为"redis,search”。

3、搜索文档

要搜索一个文档,你需要使用FT.SEARCH命令,并指定索引名和查询表达式。你可以使用多种查询语法,如精确匹配、模糊匹配、数值过滤、布尔运算等。例如,要搜索blog索引中包含"redis"或"search"的文档,你可以运行:

展开全文

这个命令会返回一个结果集,包含匹配的文档数量、文档ID和字段值。你可以使用LIMIT选项来分页查询,或者使用RETURN选项来指定返回哪些字段。

4、更新文档

要更新一个文档,你需要使用FT.PARTIAL命令,并指定文档ID和要更新的字段值。例如,要更新blog:1文档的标题和标签,你可以运行:

这个命令会更新blog:1文档的title和tags字段的值,并重新索引这些字段。

5、删除文档

要删除一个文档,你需要使用FT.DEL命令,并指定文档ID。例如,要删除blog:1文档,你可以运行:

这个命令会从索引和数据库中删除blog:1文档,并返回删除的数量。

三、C#操作Redis Search结构

这里使用了NRediSearch和StackExchange.Redis两个库,实现在C#中使用Redis和RediSearch的功能。也可以把 NRediSearch换为NRedisStack库, NRedisStack库基于 StackExchange.Redis 构建,旨在为 C# 生态系统提供对 Redis Stack 命令的原生支持。

以下demo中已添加详细注释,是基于本文中有关Redis Search使用样例的C#实现,大家可对比阅读。

publicclassRediSearchDemoProgram{privatestaticvoidMain( string[] args ) {// 创建一个连接到本地Redis实例的连接器ConnectionMultiplexer redis = ConnectionMultiplexer.Connect( "localhost"); // 获取一个数据库对象IDatabase db = redis.GetDatabase;

// 创建一个名为blog的索引,用于存储博客文章的标题、内容和标签varclient = newClient( "blog", db); // 创建一个客户端对象client.CreateIndex( newSchema // 创建一个索引对象.AddTextField( "title", 5.0) // 文本类型,权重为5.0.AddTextField( "content", 1.0) // 文本类型,权重为1.0.AddTagField( "tags", ","), newClient.ConfiguredIndexOptions); // 标签类型,分隔符为逗号

// 添加一篇博客文章到blog索引中client.AddDocument(// 添加一个文档对象newDocument( "blog:1", newDictionary string, RedisValue { { "title", "Hello Redis Search"}, //设置标题字段{ "content", "This is a blog post about Redis Search, a query and full-text search engine for Redis."}, // 设置内容字段{ "tags", "redis,search"}, // 设置标签字段}));

// 搜索blog索引中包含"redis"或"search"的文档varresult = client.Search( newQuery( "redis|search")); // 创建一个查询对象Console.WriteLine(result.TotalResults); // 打印匹配的文档数量foreach( vardoc inresult.Documents) {Console.WriteLine(doc.Id); // 打印文档IDConsole.WriteLine(doc[ "title"]); // 打印标题字段Console.WriteLine(doc[ "content"]); // 打印内容字段Console.WriteLine(doc[ "tags"]); // 打印标签字段}

// 更新blog:1文档的标题和标签client.UpdateDocument( "blog:1", newDictionary string, RedisValue { { "title", "Hello RediSearch"}, //更新标题字段{ "tags", "redis,search,full-text"}, // 更新标签字段});

// 删除blog:1文档client.DeleteDocument( "blog:1"); }}

本文就到这里了,下一篇我们来探索如何通过Redis Search进行基于向量的搜索,实现文本相似度查询。相比之下,这种搜索方式可以保留文本中的语义、语法和情感信息。

dapper分页查询(dapper连接sqlite)

👇感谢阅读,点赞+分享+收藏+关注👇

扫描二维码推送至手机访问。

版权声明:本文由飞速云SEO网络优化推广发布,如需转载请注明出处。

本文链接:http://hon-tex.cn/post/74730.html

分享给朋友:

“dapper分页查询(dapper连接sqlite)” 的相关文章

武汉app定制开发公司(武汉app定制开发公司怎么样)

武汉app定制开发公司(武汉app定制开发公司怎么样)

1华盛恒辉科技有限公司 上榜理由华盛恒辉是一家专注于高端软件定制开发服务和高端建设的服务机构,致力于为企业提供全面系统的开发制作方案在开发建设到运营推广领域拥有丰富经验,在教育,医疗,APP,管理,商城,人工。 三整体评估选择开发公司,一定要进行整体评估,一是评估自身,二是评估对方四跟进速度好的AP...

keepappcancel的简单介绍

keepappcancel的简单介绍

大部分的健身app提供健身训练计划教练课程分享打卡社区等功能,一些健身软件还提供记录体重变化和饮食习惯分析等功能下面为大家提供了几款方便实用的健身app,一起来看看吧!1KeepappKeep是一款目前非常受欢迎的移动健身指导健身应用,是。 根据查询百度经验得知,如果您不想继续使用keep的会员服务...

网站类app(网站类型有哪些)

网站类app(网站类型有哪些)

1、2旅游app排行榜前十名3旅游的app有哪些4旅游攻略app排行榜前十名口碑最好的旅游软件有哪些?口碑好的旅游软件去哪儿携程旅行穷游驴妈妈旅游蚂蜂窝自由行一去哪儿去哪儿APP是国内较大的一家旅游出行APP,上面有旅游。 2、2AppmakriOS,WindowsPhone,AndroidAppM...

做企业规划的app(做企业规划的步骤有哪些)

做企业规划的app(做企业规划的步骤有哪些)

十大室内设计培训机构排行榜 现在室内设计的门槛越来越低,越来越考验设计师的能力,想要让自己的技术精益求精,想在预计的时间内学到真本领,则选择去正规学校进行专业的学习。因为专业的室内培训学校可以给学员进行更加正规的培训,比如杭州清风室内设计培训学院,专攻室内设计一门专业,老师都是股份责任制,培训班进行...

快手app成人短视频(快手app成人短视频怎么下载)

快手app成人短视频(快手app成人短视频怎么下载)

1、首先,打开快手应用,然后点击右下角的“我的”按钮在个人主页上方会出现一个“青少年模式”的选项,点击进入在青少年模式页面上,你需要进行实名认证以证明你已经满足使用成年版的条件完成实名认证后,你可以点击页面上的。 2、快手成年版可以通过以下步骤打开1 打开快手App首先,在手机上找到并打开已经安装好...

杭州定制开发app案例(杭州定制开发app案例分析)

杭州定制开发app案例(杭州定制开发app案例分析)

2你想要开发的类型是否是开发公司的强项 再牛的APP开发公司不可能什么类型什么行业的APP都开发过,一般比较好的APP开发公司都有强项,也就是说擅长开发某一个或者哪几个行业的APP,并且有高质量的开发案例所以找APP开发;开发一个App的费用因多种因素而异,一般来说,定制开发的App价格会比较高根据...