提升移动端用户搜索体验的系统及方法与流程

文档序号:11177315阅读:745来源:国知局
提升移动端用户搜索体验的系统及方法与流程

本发明涉及计算机技术与软件开发领域,具体涉及提升移动端用户搜索体验的系统和方法。



背景技术:

对于一个移动软件而言,用户搜索几乎成了必不可少的功能,一个好的搜索系统能给用户带来很好的搜索体验,相反一个差的搜索系统对于一个软件而言就是致命的。对于移动端而言,网络状况不稳定的情况时常发生,而且对于网络的请求顺序是由系统控制而软件无法决定返回顺序,所以当用户的搜索请求发送过快时,就可能出现返回的结果顺序不一致,这样就可能导致正确的搜索结果被过滤掉,而向用户显示的却是不正确的结果。另外,用户对搜索关键字频繁的编辑以至于发送搜索请求过多,而异步的网络请求可能导致返回的搜索结果对于当前的用户搜索请求不一致,可能使正确的搜索请求没能成功的展示。



技术实现要素:

本发明的目的是为了解决上述技术问题,通过对搜索请求的标记用来决定当前的返回结果是否匹配当前的搜索请求,本系统的缓存功能也能更好的提升用户的搜索体验。

为了达到上述的技术效果,本发明采取以下技术方案:提升移动端用户搜索体验的系统,它包括网络模块、搜索模块和缓存模块。所述网络模块包括任务管理单元和网络请求单元,所述网络任务管理单元负责给添加到网络模块的网络请求任务添加任务id,所述任务id是一个整型数据,控制任务返回的方式。所述网络请求单元负责实施网络请求任务,请求服务器获取数据;所述搜索模块包括搜索请求管理单元和搜索数据处理单元,搜索请求管理单元负责获取用户搜索关键字,组装搜索参数;搜索数据处理单元负责对网络请求以及缓存查询返回的数据进行顺序控制,决定是否返回给用户。所述缓存模块包括缓存过期管理单元和缓存数据管理单元,所述缓存过期管理单元持有一个定时器,用于定期去查询缓存表,清除掉已经过期的数据;缓存数据管理单元用于维护一个历史搜索的记录,负责查询与写入搜索请求。

进一步的技术方案是:所述缓存模块内部维持一张hash表,通过key-value的方式存储数据,其中key值通过当前返回的任务获取到,value为搜索的结果数据;缓存模块存储数据后,通过key值在缓存过期管理单元里面注册;缓存过期管理单元内部维持了一个数组,记录某个key对应数据写入hash表中的时间,会定期遍历数组,删除hash表中过期的数据。

同时,本发明还提供一种提升移动端用户搜索体验的方法,它包括发起搜索流程和获取搜索结果流程两部分,所述发起搜索流程包括如下步骤:

d11、用户发起搜索时,搜索模块根据用户的搜索关键字生成唯一的一个key值,

d12、搜索模块根据生成的key值去系统的缓存模块查询是否存在缓存数据,如果存在缓存数据,则直接返回结果给用户,流程结束;如果不存在缓存数据,搜索模块向网络模块发起搜索请求;

d13、网络模块获取到搜索请求后,会生成一个网络请求任务,然后发起任务;网络模块会持有一个int类型的值用来表示当前的总任务数,每添加一个网络请求任务时,该值就会加1,然后将该值赋值给任务,对于每一个发起的任务,该任务将持有这个int类型的值用来标记当前任务的顺序,同时,该任务还会持有通过用户搜索关键字生成的key值;

所述获取搜索结果流程包括如下步骤:

d21、网络模块接收到任务返回的数据,对返回的数据做一定处理后就返回给搜索模块,并将当前的任务顺序值一起返回给搜索模块;

d22:搜索模块获取到返回的数据后,从网络模块获取到任务总数与标记的任务顺序值比较,如果任务顺序值小于任务的总数,则不返回数据,如果任务顺序值等于任务的总数,则返回结果给用户,流程结束。

进一步的技术方案是:在步骤d11和步骤d12之间还包括步骤d111:检测是否需要将这次搜索缓存下来,如果是则进入步骤d12,如果不是,则直接向网络模块发起搜索请求。

进一步的技术方案是:在步骤d21和步骤d22之间还包括步骤d211:搜索模块获取到返回的数据后,判断是否需要缓存,如果需要缓存,则将数据交给缓存模块做缓存处理后进入步骤d22;如果不需要缓存,则直接进入步骤d22。

进一步的技术方案是:所述缓存模块内部维持一张hash表,通过key-value的方式存储数据,其中key值通过当前返回的任务获取到,value为搜索的结果数据;缓存模块存储数据后,通过key值在缓存过期管理单元里面注册;缓存过期管理单元内部维持了一个数组,记录某个key对应数据写入hash表中的时间,会定期遍历数组,删除hash表中过期的数据。

本发明与现有技术相比,具有以下的有益效果:本发明中提出的通过给任务添加标记来处理返回在异常时的搜索结果,和对搜索结果进行缓存管理的方法,为用户提供了更加快速的搜索方式,从而提升用户搜索体验。本发明提供的提升移动端用户搜索体验的系统的搜索缓存功能可减少用户的搜索次数,加快搜索效率,对于搜索速度过慢时的搜索请求有更好的效果。

附图说明

图1是本发明系统结构框图;

图2是本发明系统发起搜索流程图;

图3是本发明系统获取搜索结果流程图。

具体实施方式

下面结合本发明的实施例对本发明作进一步的阐述和说明。

实施例一:

如图1所示,提升移动端用户搜索体验的系统,整个系统主要由搜索模块、网络模块和缓存模块组成,三个模块相互协作,共同高效地完成搜索请求,提升用户体验。其中搜索模块主要负责实现搜索功能,网络模块主要负责发起搜索网络请求,缓存模块主要负责缓存搜索数据到本地。

具体地,网络模块:主要包括网络任务管理单元和网络请求单元。网络任务管理单元负责给添加到网络模块的网络请求任务添加任务id(一个整型数值),控制任务返回的方式。网络请求单元负责实施网络任务,请求服务器获取数据,捕获与处理各类异常。

搜索模块:主要包括搜索请求管理单元和搜索数据处理单元。搜索请求管理单元负责获取用户搜索关键字,组装搜索参数。搜索数据处理单元负责对网络请求以及缓存查询返回的数据进行顺序控制,决定是否返回给用户。

缓存模块:主要包括缓存过期管理单元和缓存数据管单元。缓存过期管理部分持有一个定时器,会定期去查询缓存表,清除掉已经过期的数据。缓存数据管理单元维护了一个历史搜索的记录,同时,缓存数据管理单元负责查询与写入搜索请求。

具体地:所述缓存模块内部维持一张hash表,通过key-value的方式存储数据,其中key值通过当前返回的任务获取到,value为搜索的结果数据;缓存模块存储数据后,通过key值在缓存过期管理单元里面注册;缓存过期管理单元内部维持了一个数组,记录某个key对应数据写入hash表中的时间,会定期遍历数组,删除hash表中过期的数据。

实施例二:

本实施是在实施例一描述的系统的基础上提供的提升移动端用户搜索体验的方法,具体包括发起搜索流程和获取搜索结果流程两部分。

发起搜索流程如图2所示,包含以下步骤:s0:流程开始,进入步骤s1:获取用户输入的搜索关键字。搜索模块会根据用户的搜索关键字生成唯一的一个key值,生成key的方法可以直接使用用户的搜索关键字,也可根据用户的搜索条件生成hash值。然后步骤s2:检测是否需要将这次搜索缓存下来,如果为是,则进入步骤s3_0:缓存模块查询是否有历史记录,搜索模块会根据生成的key值去系统的本地缓存模块查询是否存在缓存数据,如果是,即存在缓存数据则进入步骤s4:返回查询到的数据,即返回结果给用户,然后步骤s6:流程结束。如果不需要缓存或者历史记录里没有搜索记录,不存在缓存数据,那么进入步骤s3_1:交给网络任务模块,创建网络请求任务,搜索模块会根据用户的搜索条件生成一条搜索请求,然后将搜索请求派给网络模块,步骤s5:给任务标记顺序,最后由网络模块处理任务,步骤s6:流程结束。具体地:网络模块获取到搜索请求后,会生成一个网络请求任务,然后发起任务;网络模块会持有一个int类型的值用来表示当前的总任务数,每添加一个网络请求任务时,该值就会加1,然后将该值赋值给任务,对于每一个发起的任务,该任务将持有这个int类型的值用来标记当前任务的顺序,同时,该任务还会持有通过用户搜索关键字生成的key值。

获取搜索结果流程如图3所示,包含以下步骤:s20:流程开始,步骤s21,获取网络返回结果。然后在步骤s22判断是否需要缓存,如果是,则进入s23,由缓存模块添加本地缓存。如果为否,则直接进入s24获取任务的顺序标记。接下来,在步骤s25判断是否为最新搜索的标记,如果是,则在s26返回搜索结果,否则直接进入s27流程结束。具体地:搜索模块获取到返回的数据后,从网络模块获取到任务总数与标记的任务顺序值比较,如果任务顺序值小于任务的总数,则不返回数据,如果任务顺序值等于任务的总数,则返回结果给用户,流程结束

以上两个流程中都利用到了缓存模块来管理和判断搜索请求,这个缓存模块内部维持一张hash表,通过key-value的方式存储数据,其中key值通过当前返回的任务获取到,value为搜索的结果数据。缓存模块存储数据后,通过key值在缓存过期管理单元里面注册;同时缓存过期管理单元维持有一个数组,记录某个key对应数据写入hash表中的时间,会定期遍历数组,删除hash表中过期的数据。

本发明针对移动端搜索功能遇到的数据返回不准确、频繁发起重复搜索等问题,通过对用户的搜索请求添加标记和实现本地缓存等方法,提升了搜索结果的准确性、减少了搜索网络请求次数,优化了用户的搜索体验。

可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。

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