CN107229699B - 提升移动端用户搜索体验的系统及方法 - Google Patents
提升移动端用户搜索体验的系统及方法 Download PDFInfo
- Publication number
- CN107229699B CN107229699B CN201710373931.XA CN201710373931A CN107229699B CN 107229699 B CN107229699 B CN 107229699B CN 201710373931 A CN201710373931 A CN 201710373931A CN 107229699 B CN107229699 B CN 107229699B
- Authority
- CN
- China
- Prior art keywords
- search
- task
- data
- module
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
- Mobile Radio Communication Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了提升移动端用户搜索体验的系统和方法,涉及计算机技术与软件开发领域。提升移动端用户搜索体验的系统,主要由搜索模块、网络模块和缓存模块组成,三个模块相互协作,共同高效地完成搜索请求,提升用户体验。其中搜索模块主要负责实现搜索功能,网络模块主要负责发起搜索网络请求,缓存模块主要负责缓存搜索数据到本地。本发明针对移动端搜索功能遇到的数据返回不准确、频繁发起重复搜索等问题,通过对用户的搜索请求添加标记和实现本地缓存等方法,提升了搜索结果的准确性、减少了搜索网络请求次数,优化了用户的搜索体验。
Description
技术领域
本发明涉及计算机技术与软件开发领域,具体涉及提升移动端用户搜索体验的系统和方法。
背景技术
对于一个移动软件而言,用户搜索几乎成了必不可少的功能,一个好的搜索系统能给用户带来很好的搜索体验,相反一个差的搜索系统对于一个软件而言就是致命的。对于移动端而言,网络状况不稳定的情况时常发生,而且对于网络的请求顺序是由系统控制而软件无法决定返回顺序,所以当用户的搜索请求发送过快时,就可能出现返回的结果顺序不一致,这样就可能导致正确的搜索结果被过滤掉,而向用户显示的却是不正确的结果。另外,用户对搜索关键字频繁的编辑以至于发送搜索请求过多,而异步的网络请求可能导致返回的搜索结果对于当前的用户搜索请求不一致,可能使正确的搜索请求没能成功的展示。
发明内容
本发明的目的是为了解决上述技术问题,通过对搜索请求的标记用来决定当前的返回结果是否匹配当前的搜索请求,本系统的缓存功能也能更好的提升用户的搜索体验。
为了达到上述的技术效果,本发明采取以下技术方案:提升移动端用户搜索体验的系统,它包括网络模块、搜索模块和缓存模块。所述网络模块包括任务管理单元和网络请求单元,所述网络任务管理单元负责给添加到网络模块的网络请求任务添加任务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表中过期的数据。
本发明针对移动端搜索功能遇到的数据返回不准确、频繁发起重复搜索等问题,通过对用户的搜索请求添加标记和实现本地缓存等方法,提升了搜索结果的准确性、减少了搜索网络请求次数,优化了用户的搜索体验。
可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。
Claims (6)
1.提升移动端用户搜索体验的系统,其特征在于:它包括网络模块、搜索模块和缓存模块,所述网络模块包括网络任务管理单元和网络请求单元,所述网络任务管理单元负责给添加到网络模块的网络请求任务添加任务ID,所述任务ID是一个整型数据,控制任务返回的方式;所述网络请求单元负责实施网络请求任务,请求服务器获取数据;所述搜索模块包括搜索请求管理单元和搜索数据处理单元,搜索请求管理单元负责获取用户搜索关键字,组装搜索参数;搜索数据处理单元负责对网络请求以及缓存查询返回的数据进行顺序控制,决定是否返回给用户;所述缓存模块包括缓存过期管理单元和缓存数据管理单元,所述缓存过期管理单元持有一个定时器,用于定期去查询缓存表,清除掉已经过期的数据;缓存数据管理单元用于维护一个历史搜索的记录,负责查询与写入搜索请求;
网络模块获取到搜索请求后,会生成一个网络请求任务,然后发起任务;网络模块会持有一个 Int 类型的值用来表示当前的总任务数,每添加一个网络请求任务时,该值就会加1 ,然后将该值赋值给任务,对于每一个发起的任务,该任务将持有这个 Int 类型的值用来标记当前任务的顺序,同时,该任务还会持有通过用户搜索关键字生成的 Key 值;
获取搜索结果流程包括如下步骤: D21 、网络模块接收到任务返回的数据,对返回的数据做一定处理后就返回给搜索模块,并将当前的任务顺序值一起返回给搜索模块;D22:搜索模块获取到返回的数据后,从网络模块获取到任务总数与标记的任务顺序值比较,如果任务顺序值小于任务的总数,则不返回数据,如果任务顺序值等于任务的总数,则返回结果给用户,流程结束。
2.根据权利要求1所述的提升移动端用户搜索体验的系统,其特征在于:所述缓存模块内部维持一张Hash表,通过Key-Value的方式存储数据,其中Key值通过当前返回的任务获取到,value为搜索的结果数据;缓存模块存储数据后,通过Key值在缓存过期管理单元里面注册;缓存过期管理单元内部维持了一个数组,记录某个Key对应数据写入Hash表中的时间,会定期遍历数组,删除Hash表中过期的数据。
3.提升移动端用户搜索体验的方法,其特征在于:它包括发起搜索流程和获取搜索结果流程两部分,所述发起搜索流程包括如下步骤:
D11、用户发起搜索时,搜索模块根据用户的搜索关键字生成唯一的一个Key 值,
D12、搜索模块根据生成的Key值去系统的缓存模块查询是否存在缓存数据,如果存在缓存数据,则直接返回结果给用户,流程结束;如果不存在缓存数据,搜索模块向网络模块发起搜索请求;
D 13、网络模块获取到搜索请求后,会生成一个网络请求任务,然后发起任务;网络模块会持有一个Int类型的值用来表示当前的总任务数,每添加一个网络请求任务时,该值就会加1,然后将该值赋值给任务,对于每一个发起的任务,该任务将持有这个Int类型的值用来标记当前任务的顺序,同时,该任务还会持有通过用户搜索关键字生成的Key值;
所述获取搜索结果流程包括如下步骤:
D 21、网络模块接收到任务返回的数据,对返回的数据做一定处理后就返回给搜索模块,并将当前的任务顺序值一起返回给搜索模块;
D 22:搜索模块获取到返回的数据后,从网络模块获取到任务总数与标记的任务顺序值比较,如果任务顺序值小于任务的总数,则不返回数据,如果任务顺序值等于任务的总数,则返回结果给用户,流程结束。
4.根据权利要求3所述的提升移动端用户搜索体验的方法,其特征在于:在步骤D11和步骤D12之间还包括步骤D111:检测是否需要将这次搜索缓存下来,如果是则进入步骤D12,如果不是,则直接向网络模块发起搜索请求。
5.根据权利要求3所述的提升移动端用户搜索体验的方法,其特征在于:在步骤D21和步骤D22之间还包括步骤D211:搜索模块获取到返回的数据后,判断是否需要缓存,如果需要缓存,则将数据交给缓存模块做缓存处理后进入步骤D22;如果不需要缓存,则直接进入步骤D22。
6.根据权利要求5所述的提升移动端用户搜索体验的方法,其特征在于:所述缓存模块内部维持一张Hash表,通过Key-Value的方式存储数据,其中Key值通过当前返回的任务获取到,value为搜索的结果数据;缓存模块存储数据后,通过Key值在缓存过期管理单元里面注册;缓存过期管理单元内部维持了一个数组,记录某个Key对应数据写入Hash表中的时间,会定期遍历数组,删除Hash表中过期的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710373931.XA CN107229699B (zh) | 2017-05-24 | 2017-05-24 | 提升移动端用户搜索体验的系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710373931.XA CN107229699B (zh) | 2017-05-24 | 2017-05-24 | 提升移动端用户搜索体验的系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107229699A CN107229699A (zh) | 2017-10-03 |
CN107229699B true CN107229699B (zh) | 2020-06-30 |
Family
ID=59933281
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710373931.XA Active CN107229699B (zh) | 2017-05-24 | 2017-05-24 | 提升移动端用户搜索体验的系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107229699B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109656959A (zh) * | 2018-12-24 | 2019-04-19 | 拉扎斯网络科技(上海)有限公司 | 一种数据查询方法、装置、电子设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8214361B1 (en) * | 2008-09-30 | 2012-07-03 | Google Inc. | Organizing search results in a topic hierarchy |
CN104516979A (zh) * | 2014-12-31 | 2015-04-15 | 北京锐安科技有限公司 | 一种基于二次检索的数据查询方法及系统 |
CN106503038A (zh) * | 2016-09-19 | 2017-03-15 | 福建天泉教育科技有限公司 | 一种自动缓存网络请求返回数据的方法及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8621151B2 (en) * | 2010-11-23 | 2013-12-31 | IP Cube Partners (IPC) Co., Ltd. | Active memory processor system |
US9229968B2 (en) * | 2013-03-11 | 2016-01-05 | Intenational Business Machines Corporation | Management of searches in a database system |
-
2017
- 2017-05-24 CN CN201710373931.XA patent/CN107229699B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8214361B1 (en) * | 2008-09-30 | 2012-07-03 | Google Inc. | Organizing search results in a topic hierarchy |
CN104516979A (zh) * | 2014-12-31 | 2015-04-15 | 北京锐安科技有限公司 | 一种基于二次检索的数据查询方法及系统 |
CN106503038A (zh) * | 2016-09-19 | 2017-03-15 | 福建天泉教育科技有限公司 | 一种自动缓存网络请求返回数据的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN107229699A (zh) | 2017-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2016382908B2 (en) | Short link processing method, device and server | |
CN105740472A (zh) | 一种分布式实时全文检索方法及系统 | |
CN110427386B (zh) | 数据处理方法、装置及计算机存储介质 | |
CN108076376B (zh) | 一种基于视频云存储系统的视频定位回放方法及装置 | |
US8352541B2 (en) | Identifying relevant data from unstructured feeds | |
CN108206776B (zh) | 一种群组历史消息的查询方法和装置 | |
CN109947729B (zh) | 一种实时数据分析方法及装置 | |
CN111125156B (zh) | 数据的查询方法、装置和电子设备 | |
CN109254981B (zh) | 一种分布式缓存系统的数据管理方法和装置 | |
JP2020123320A (ja) | インデックスを管理するための方法、装置、設備及び記憶媒体 | |
US20180293316A1 (en) | Method and system for second-degree friend query | |
CN111221742B (zh) | 一种测试案例的更新方法、装置、存储介质和服务器 | |
CN114372064B (zh) | 数据处理装置、方法、计算机可读介质及处理器 | |
CN115421764A (zh) | 一种待升级模块识别方法、装置、设备及存储介质 | |
CN107229699B (zh) | 提升移动端用户搜索体验的系统及方法 | |
CN107992489B (zh) | 一种数据处理方法及服务器 | |
CN104484413A (zh) | 一种获得搜索结果的方法和装置 | |
CN112866339B (zh) | 数据传输方法、装置、计算机设备和存储介质 | |
CN110955460A (zh) | 一种服务进程启动方法、装置、电子设备和存储介质 | |
CN103150365A (zh) | 银行后台系统模糊搜索的方法及设备 | |
CN108241758B (zh) | 数据查询方法及相关设备 | |
CN114051162B (zh) | 一种基于播放记录的缓存方法及装置 | |
CN106682197B (zh) | 一种搜索缓存更新方法及装置 | |
CN113157716A (zh) | 一种数据处理方法、装置、设备及介质 | |
AU2021204609A1 (en) | Cluster management method and apparatus, electronic device and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |