一种基于社交商城的搜索方法、系统及存储介质与流程

文档序号:37366769发布日期:2024-03-22 10:19阅读:6来源:国知局
一种基于社交商城的搜索方法、系统及存储介质与流程

本发明涉及计算机,特别是一种基于社交商城的搜索方法、系统及存储介质。


背景技术:

1、社交商城,顾名思义带有社交属性+电子商务模式,市面上模式主要有以下几类:社区团购、分销、内容电商、直播电商、社交网络电商。

2、社交商城的数据量相对较小,但客户端访问量较大。现有技术中对于社交商城的搜索方法通常采用传统的关系型数据库查询方法,具体采用sql语言进行,其查询性能在处理大规模数据和高并发请求时存在一定瓶颈。传统数据库的查询过程包括解析sql语句、执行查询计划、磁盘i/o等步骤,这些步骤在大流量情境下可能导致响应时间延迟,难以满足快速查询的需求。

3、因此,现有的社交商城搜索方法存在大流量情境下响应时间延迟,处理效率较低的问题。


技术实现思路

1、本发明的主要目的在于提供了一种基于社交商城的搜索方法、系统及存储介质,旨在解决现有的社交商城搜索方法在大流量情境下响应时间延迟,处理效率较低的技术问题。

2、为实现上述目的,本发明提供了一种基于社交商城的搜索方法,其包括以下步骤:获取用户查询请求,查询请求内至少包括条件参数字段和默认排序字段;根据条件参数字段,基于预设redis的无序集合key值进行聚合处理,以得到用户查询请求对应的商品id的集合;根据默认排序字段,基于预设redis的有序集合key值对商品id的集合进行排序处理,以得到商品id的有序集合;根据商品id的有序集合,获取本地缓存数据中对应的商品信息数据,以得到商品信息列表;根据商品信息数据请求参数所需的每页总数和分页参数,以及商品信息列表,创建分页并返回搜索结果。

3、可选的,在聚合处理的过程中,遍历条件参数字段对应的redis无序集合key值并进行合并,以得到用户查询请求对应的商品id的集合。

4、可选的,条件参数字段是指用户在社交商城首页选择不同的选项时所带的查询条件,选项至少包括分类选项、标签选项其中一种。

5、可选的,当检测到新增商品指令时,存储新增商品id对应的mysql表数据以及本地缓存数据,同时创建redis反向索引;本地缓存数据至少包括商品信息数据;创建redis反向索引至少包括以下步骤:查询新增商品对应的商品基本信息以及与商品相关的元数据;检测新增商品状态是否为上架状态,若是,则根据元数据的维度数量,以新增商品id为元素设置对应的redis无序集合key值;检测新增商品是否存在需要排序的字段,若是,则以商品id为元素,需要排序的字段为分值,设置对应的redis有序集合key值。

6、可选的,商品信息数据至少包括商品基本信息以及与商品相关的元数据;商品基本信息至少包括:商品id、名称、图片、描述、价格、状态其中一种或两种以上,元数据至少包括:分类、标签、等级其中一种或两种以上。

7、可选的,根据元数据的维度数量,以新增商品id为元素设置对应的redis无序集合key值,具体包括以下步骤:根据与新增商品相关的元数据确认元数据的维度数量;根据元数据的维度数量,设置相同数量的无序集合key值;将新增商品id设置至元数据对应的redis无序集合key值中。

8、可选的,当需要设置多个redis集合key值时,通过redis管道命令执行。

9、可选的,当商品基本信息或者与商品相关的元数据编辑更新时,刷新redis集合缓存,具体为:遍历所有维度对应的redis无序集合key值,获取编辑更新前的商品id元素并删除,以编辑更新后的商品id为元素重新设置对应的redis无序集合key值。

10、与所述基于社交商城的搜索方法相对应的,本发明提供一种基于社交商城的搜索系统,其包括:查询请求获取模块,用于获取用户查询请求,查询请求内至少包括条件参数字段和默认排序字段;聚合处理模块,用于根据条件参数字段,基于预设redis的无序集合key值进行聚合处理,以得到用户查询请求对应的商品id的集合;排序处理模块,用于根据默认排序字段,基于预设redis的有序集合key值对商品id的集合进行排序处理,以得到商品id的有序集合;商品信息列表获取模块,用于根据商品id的有序集合,获取本地缓存数据中对应的商品信息数据,以得到商品信息列表;搜索结果返回模块,用于根据商品信息数据请求参数所需的每页总数和分页参数,以及商品信息列表,创建分页并返回搜索结果。

11、此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有基于社交商城的搜索程序,所述基于社交商城的搜索程序被处理器执行时实现如上文所述的基于社交商城的搜索方法的步骤。

12、本发明的有益效果是:

13、(1)与现有技术相比,本发明通过根据条件参数字段,基于预设redis的无序集合key值进行聚合处理,以得到用户查询请求对应的商品id的集合;根据默认排序字段,基于预设redis的有序集合key值对商品id的集合进行排序处理,以得到商品id的有序集合;根据商品信息数据请求参数所需的每页总数和分页参数,以及商品信息列表,创建分页并返回搜索结果;不需要使用传统的关系型数据库查询,能够满足大流量查询需求,响应时间较快,处理效率较高;

14、(2)与现有技术相比,本发明通过使用redis的集合数据类型构建反向索引充分利用内存级别的查询效率,使得商品分类、标签、等级搜索、分页和正反排序功能能够以极高的性能满足大流量查询需求,相较于传统关系型数据库,redis的内存查询效率提升巨大;

15、(3)与现有技术相比,本发明通过引入了本地缓存机制,能够保证数据读取效率,并采用主动更新策略(即数据变更时立即触发本地缓存的更新),以确保数据的实时性和一致性;

16、(4)与现有技术相比,本发明当需要设置多个redis集合key值时,通过redis管道命令执行,能够提高执行效率;

17、(5)与现有技术相比,本发明通过使用redis的集合数据类型构建反向索,允许企业以最小成本开发和实现redis内存级别的反向索引搜索引擎,满足小规模数据的大流量条件查询;相比于现有的社交商城搜索方法,本发明能够以更少的服务器资源满足相同数量的查询请求,举例而言,以前需要10个mysql数据服务器才能支持系统的大流量访问需求,现在只需要1台redis服务器,这将大幅度减少服务器租赁和维护成本,进一步提升了系统服务稳定性;

18、(6)与现有技术相比,本发明通过使用redis的集合数据类型构建反向索引,能够有效提高用户体验;用户在使用社交商城时能够更快速地进行搜索、筛选和排序,无需长时间等待查询结果;例如,通过现有社交商城搜索方法进行搜索时,用户可能需要等待3秒左右才能看到搜索结果,而通过本发明所述的搜索方法进行搜索,其查询结果几乎是即时返回的,大幅提升了用户体验;

19、(7)与现有技术相比,本发明通过使用redis的集合数据类型构建反向索,提高了容灾能力和故障恢复能力;例如,传统数据库系统的故障恢复可能需要较长时间,甚至导致数据损失,而redis可以实现快速的备份和故障转移,减少了系统中断时间;如果某个redis节点发生故障,系统可以自动切换到备用节点,用户几乎不会察觉到服务中断。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1