CN110019393A - 一种模糊查询的方法和装置 - Google Patents

一种模糊查询的方法和装置 Download PDF

Info

Publication number
CN110019393A
CN110019393A CN201711159764.5A CN201711159764A CN110019393A CN 110019393 A CN110019393 A CN 110019393A CN 201711159764 A CN201711159764 A CN 201711159764A CN 110019393 A CN110019393 A CN 110019393A
Authority
CN
China
Prior art keywords
field
inquiry
input field
matching result
trigger condition
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.)
Pending
Application number
CN201711159764.5A
Other languages
English (en)
Inventor
苗艳辉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Jingdong Century Trading Co Ltd, Beijing Jingdong Shangke Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN201711159764.5A priority Critical patent/CN110019393A/zh
Publication of CN110019393A publication Critical patent/CN110019393A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2468Fuzzy queries

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种模糊查询的方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:当满足预定义的第一触发条件时,获取当前待查询的输入字段;在预先保存的查询字段集中匹配包含所述输入字段的查询字段,以获得匹配结果;当存在匹配结果时,展示所述匹配结果。该实施方式能够减轻服务端压力,优化客户端性能,提高数据交互速度,提升用户体验。

Description

一种模糊查询的方法和装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种模糊查询的方法和装置。
背景技术
目前,在用户使用搜索系统的过程中,将文本输入搜索框,搜索系统会自动按照用户输入的文本进行模糊查询,从而得到包含有用户输入字段内容的模糊查询结果。例如,用户在搜索框中输入“清华”两个字,通过模糊查询,搜索框的下拉菜单中可以展示出“清华路、清华园、清华大学”等匹配结果。现实中模糊查询的应用场景有很多,例如查询地址,查询商品以及查询名称等。
传统的模糊查询方法是通过结构化查询语言SQL提供的模糊匹配功能对服务端数据库进行数据查询实现的,该方法在使用的时候,客户端需要根据用户操作,去触发服务端查询操作。客户端文本框会监听输入文字的变化,一旦输入有改变,就会向服务端发起一条查询请求,服务端响应该请求进行数据库查询。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:传统方法的查询请求过于频繁,例如,如果用户在文本框输入五个数,客户端就会向服务端发起五次请求,数据库就会进行五次模糊查询,频繁的请求对服务端的压力较大,并且影响客户端性能以及数据交互速度,如果所查询的数据量过大,页面容易响应缓慢或卡死,用户体验较差。
因此,亟需一种能够减轻服务端压力,优化客户端性能,提高数据交互速度,提升用户体验的模糊查询的方法和装置。
发明内容
有鉴于此,本发明实施例提供一种模糊查询的方法和装置,能够减轻服务端压力,优化客户端性能,提高数据交互速度,提升用户体验。
为实现上述目的,根据本发明实施例的一个方面,提供了一种模糊查询的方法,包括:
当满足预定义的第一触发条件时,获取当前待查询的输入字段;
在预先保存的查询字段集中匹配包含所述输入字段的查询字段,以获得匹配结果;
当存在匹配结果时,展示所述匹配结果。
进一步的,在执行所述匹配步骤之前,还包括:
当满足于预定义的第二触发条件时,判断是否存在已保存的对应于该第二触发条件的查询字段集;
若不存在,则根据对应于所述第二触发条件的预定义的查询条件发送查询请求;
接收根据所述查询请求返回的查询结果并保存为所述查询字段集。
进一步的,在所述匹配步骤执行之后,还包括:
每当满足于预定义的第三触发条件时,根据对应于所述第三触发条件的预定义的查询条件发送查询请求;
接收根据所述查询请求返回的查询结果并存入所述查询字段集;
在所述返回的查询结果中匹配包含所述输入字段的查询字段,以获得匹配结果;
当存在匹配结果时,展示该匹配结果。
可选的,本发明实施例提供的模糊查询的方法,还包括:
监听页面文本框内输入字段的变化;
当输入字段发生变化时,则确定满足预定义的第一触发条件。
进一步的,所述在预先保存的查询字段集中匹配包含所述输入字段的查询字段包括:
当输入字段不为空时,对查询字段集中的每个查询字段执行下述外循环步骤:
对比当前查询字段和输入字段的长度,
若当前查询字段的长度大于等于输入字段的长度,则对当前查询字段的第1个字符至第1+n个字符,逐一执行内循环步骤,直至确定当前查询字段为匹配结果,n为当前查询字段与输入字段的长度差值;
所述内循环步骤包括:
从当前字符开始截取长度为m的字段,m为输入字段的长度值;
判断截取的字段是否与输入字段相同;
若是,则确定当前查询字段为匹配结果。
可选的,本发明实施例提供的模糊查询的方法,还包括:
接收查询字段更新数据;
利用所述更新数据更新保存的查询字段集中的查询字段。
为实现上述目的,根据本发明实施例的一个方面,提供了一种模糊查询的装置,包括:
获取模块,用于当满足预定义的第一触发条件时,获取当前待查询的输入字段;
匹配模块,用于在预先保存的查询字段集中匹配包含所述输入字段的查询字段,以获得匹配结果;
展示模块,用于当存在匹配结果时,展示所述匹配结果。
进一步的,本发明实施例提供的模糊查询的装置,还包括:
第一请求模块,用于当满足于预定义的第二触发条件时,判断是否存在已保存的对应于该第二触发条件的查询字段集;
若不存在,则根据对应于所述第二触发条件的预定义的查询条件发送查询请求;
接收根据所述查询请求返回的查询结果并保存为所述查询字段集。
进一步的,本发明实施例提供的模糊查询的装置,还包括:
第二请求模块,用于在展示所述匹配结果之后,每当满足于预定义的第三触发条件时,根据对应于所述第三触发条件的预定义的查询条件发送查询请求,然后接收根据所述查询请求返回的查询结果并存入所述查询字段集;
所述匹配模块还用于在所述返回的查询结果中匹配包含所述输入字段的查询字段,以获得匹配结果;
所述展示模块还用于当存在匹配结果时,展示该匹配结果。
可选的,本发明实施例提供的模糊查询的装置,还包括:
监听模块,用于监听页面文本框内输入字段的变化,当输入字段发生变化时,则确定满足预定义的第一触发条件。
进一步的,所述匹配模块进一步用于当输入字段不为空时,对查询字段集中的每个查询字段执行下述外循环步骤:
对比当前查询字段和输入字段的长度,
若当前查询字段的长度大于等于输入字段的长度,则对当前查询字段的第1个字符至第1+n个字符,逐一执行内循环步骤,直至确定当前查询字段为匹配结果,n为当前查询字段与输入字段的长度差值;
所述内循环步骤包括:
从当前字符开始截取长度为m的字段,m为输入字段的长度值;
判断截取的字段是否与输入字段相同;
若是,则确定当前查询字段为匹配结果。
可选的,本发明实施例提供的模糊查询的装置,还包括:
更新模块,用于接收查询字段更新数据,然后利用所述更新数据更新保存的查询字段集中的对应的查询字段。
为实现上述目的,根据本发明实施例的一个方面,提供了一种模糊查询的电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例的提供的模糊查询的方法。
为实现上述目的,根据本发明实施例的一个方面,提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例的提供的模糊查询的方法。
本发明实施例提供的模糊查询的方法,客户端通过监视用户行为实时调用本地保存的查询字段集匹配包含用户输入字段的查询字段,从而获得匹配结果,解决了传统方法频繁请求服务端数据库的问题,减轻了服务端压力,服务端不用频繁向客户端推送数据,提高了数据交互速度。并且通过本发明提供的外内循环步骤,整个查询过程在客户端本地完成,匹配结果会实时展现,不用等待,提高了用户体验。客户端向服务端发送查询请求的时机和方式可以结合具体的应用场景进行设置,在查询数据量较大时,可以通过懒加载方式进行查询,并将查询结果分屏或分页显示出来,进一步减轻服务端的压力,提高页面的加载速度,改善用户体验。同时,服务端数据库数据变化后,客户端展示数据也会更新,保证本地数据的实时性。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是本发明实施例提供模糊查询的方法的主要流程的示意图;
图2是本发明实施例提供模糊查询的方法的应用流程的示意图;
图3是本发明实施例提供模糊查询的方法的循环机制的示意图;
图4是本发明实施例提供模糊查询的方法的主要模块的示意图;
图5是本发明实施例可以应用于其中的示例性系统架构图;
图6是适于用来实现本发明实施例的电子设备的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
本发明实施例提供一种模糊查询的方法,本方法可以部署在客户端实现,如图1所示,该方法包括下述步骤S101至S103。
在步骤S101中,当满足预定义的第一触发条件时,获取当前待查询的输入字段。第一触发条件用来触发对当前待查询的输入字段,例如用户在文本框中的输入内容的模糊查询,只有在第一触发条件满足时,才执行后续的步骤。在本发明的一个优选的实施方式中,第一触发条件可以为页面文本框内的输入字段发生变化,即当输入字段发生变化时,则确定满足预定义的第一触发条件。
当第一触发条件为输入字段发生变化的实施方式中,需要监听页面文本框内输入字段的变化,即监听用户是否对文本框进行了输入操作,文本框内输入字段的变化包括:在空的文本框内输入字符,在已输入的字符后输入新的字符,以及删除已输入字符。例如,用户在空的文本框中输入文字“清”,即认为文本框内输入字段发生变化,接着用户继续输入文字“华”,文本框内输入字段再次发生变化。
在上述实施方式中,对页面文本框内输入字段的变化的监听是通过在页面中加入脚本语言JavaScript事件实现的,例如在本发明的一种实施方式中,对页面的文本框设置焦点focus事件和按键释放keyup事件,在用户选中文本框,并进行文字输入时,就会触发上述两个事件,进而可确定文本框内输入字段发生了变化。
当满足预定义的第一触发条件时,例如,当输入字段发生变化,即表明用户对文本框进行了操作,此时,获取当前输入字段,然后执行匹配步骤S102,在客户端本地保存的查询字段集中匹配包含输入字段的查询字段,以获得匹配结果。查询字段集是预先存储在客户端本地的数据集,其中包括有一个或多个查询字段,当某一查询字段中包含用户的输入字段时,则将该查询字段作为匹配结果。
例如,用户在空的文本框中输入文字“清”,客户端监听到文本框内的相应变化,获取当前文字“清”,然后在查询字段集中查询包含该文字“清”的查询字段,获得的匹配结果:“清华路”、“清华园”、“清华大学”。
在获得匹配结果后,执行匹配步骤S103,在页面上展示该匹配结果。在本发明的一种实施方式中,当存在匹配结果时,展示匹配结果列表,否则,展示没有匹配结果的提示信息。从而实现对于用户输入文字的模糊查询,用户可以选择列表中展示的匹配结果进行进一步的查询。
对应上例,当查询字段集中有包含该文字“清”的查询字段,则展示文字“清华路”、“清华圆”、“清华大学”的列表,否则,可以展示“未匹配到清”的文字提示信息。
在本发明中,上述步骤S101至步骤S103是循环执行的,当步骤S103,在页面上展示匹配结果后,返回步骤S101,继续检查预定义的第一触发条件是否满足,例如,在页面上展示匹配结果后,继续监听页面文本框内输入字段的变化,并在输入字段发生变化后,确定第一触发条件满足,进行后续步骤。
例如,用户在空的文本框中输入文字“清”,通过上述步骤S101至步骤S103将查询字段集中包含有文字“清”的查询字段展示出来,用户继续输入文字“华”,则当前文本框中的输入字段为“清华”,然后再次通过上述步骤S101至步骤S103将查询字段集中包含有文字“清华”的查询字段展示出来。
本发明实施例提供的模糊查询的方法,利用客户端本地保存的查询字段集匹配包含用户输入字段的查询字段,从而获得匹配结果,解决了传统方法频繁请求服务端数据库的问题,减轻了服务端压力,服务端不用频繁向客户端推送数据,提高了数据交互速度,整个查询过程在客户端完成,匹配结果会实时展现,不用等待,提高了用户体验。
在本发明实施例中,预先保存查询字段集的过程包括:当满足于预定义的第二触发条件时,判断是否存在已保存的对应于该第二触发条件的查询字段集。若不存在,则根据对应于所述第二触发条件的预定义的查询条件向服务端发送查询请求。然后,接收服务端根据查询请求返回的查询结果并保存为所述查询字段集。
查询字段集是客户端根据预定义的查询条件向服务端发出查询请求后,获得的服务端根据查询请求返回的查询结果,预定义的查询条件是根据在具体的应用场景中用户在对应页面的文本框内可能会查询的内容确定的,也就是说服务端根据查询请求返回的查询字段集中的字段内容即用户可能会查询的相关内容。例如,对于一个食品店的页面,该页面对应的查询字段集的字段内容可以包括:食品店的名称,食品店各个分店名称,以及各分店具体地址等与食品店相关的字段。
当满足预定义的第二触发条件时,首先判断是否存在已保存的对应于该第二触发条件的查询字段集,即判断有没有已保存的在该第二触发条件下客户端请求并获得的查询字段集,如果该预定义的第二触发条件不是第一次满足,则客户端就保存有之前请求并获得的查询字段集,此时客户端不再重复向服务端请求相同的数据。若不存在已保存的对应于第二触发条件的查询字段集,则客户端向服务端发送查询请求以获得查询字段集。
在本发明实施例中,客户端向服务端发送的查询请求的方式可以是通过结构化查询语言SQL语句。例如,对于一个食品店的详情页,假设用户可能会在该食品店的详情页查询该食品店所有北京门店的地址,则客户端预定义的查询条件就是查询该食品店所有北京门店的地址,客户端向服务端发送的请求可以为模糊查询语句:select*from flow_shopwhere shopName like'%北京%',服务端会将数据库中flow_shop数据表中所有食品店名称shopName中有“北京”的所有字段记录查询出来,返回给客户端,客户端即将返回的字段保存在本地作为查询字段集。结合具体的应用场景,客户端发送的SQL语句也可以采用其他模糊查询方式,或者完整查询方式。
在本发明实施例中,预定义的第二触发条件是客户端向服务端发出查询请求,以获得查询字段集的触发条件。区别与现有技术每当用户进行输入客户端就向服务端发起模糊查询请求,本发明提供的模糊查询方法只在满足预定义的第二触发条件时,客户端才向服务端发起查询请求,从而避免了频繁操作服务端数据库,减轻了服务端的压力。
在本发明实施例中,第二触发条件与查询条件具有对应关系,第二触发条件可以有多个,查询条件也可以有多个,多个第二触发条件可以对应一个查询条件,也可以与多个查询条件分别对应。查询字段集与查询条件一一对应,因此也可以有多个。
在本发明的一种实施方式中,预定义的第二触发条件为页面的访问,当监测到用户的打开页面的请求时,确定满足第二触发条件,客户端判断是否存在已保存的对应于该第二触发条件的查询字段集,若不存在,则表明用户第一次访问该页面,客户端向服务端发出查询请求,以获得相应查询条件对应的查询字段集。
在本发明的一种实施方式中,预定义的第二触发条件为用户对页面表单的操作,当监测到用户对页面表单进行操作时,确定满足第二触发条件。
在一种应用场景中,第二触发条件为页面表单的选项被选中,页面表单中包括有文本框和选择框,选择框中包括多个选项,该场景配置为用户选择选项后,客户端向服务端请求并获得与该选项相关的查询字段集。因此,在该场景中,每一个选项对应一个第二触发条件,每一个第二触发条件对应各自的查询条件,多个选项的查询条件各不相同,用户选择任一个选项即满足该选项对应的第二触发条件,客户端根据该第二触发条件对应的查询条件发出查询请求,以获得对应的查询字段集。用户在选择选项后,在文本框中输入文字后,上述步骤S101至S103即根据用户选择的选项对应的查询字段集对用户输入的文字进行匹配,并最终展示匹配结果。
在一种应用场景中,第二触发条件为页面表单的文本框内输入字段发生变化,当页面文本框内输入字段发生变化则客户端先判断本地是否存在已保存的对应于该第二触发条件的查询字段集,若不存在,则向服务端发送查询请求以获得查询字段集。然后客户端利用获得的查询字段集匹配包含输入字段的查询字段,然后对匹配结果进行展示。
在本发明实施例中,客户端可以采用懒加载方式向服务端请求数据,即当满足于预定义的第二触发条件时,且不存在已保存的对应于该第二触发条件的查询字段集,则根据对应于所述第二触发条件的预定义的查询条件向服务端发送查询请求,这里预定义的查询条件配置为只向服务端查询一部分数据,即用户可能会查询的相关内容中的一部分内容,客户端将服务端根据查询请求返回的这部分查询结果保存为查询字段集,然后执行匹配步骤,在匹配步骤完成后,每当满足预定义的第三触发条件时,客户端再根据对应于该第三触发条件的查询条件向服务端发送查询请求,这里的查询条件配置为向服务端查询之前未查询的新一批的数据,即用户可能会查询的相关内容中还未展示的部分内容,客户端将根据第三触发条件请求并返回的新查询结果加入查询字段集,然后利用该新的查询结果,再次执行匹配步骤。
第三触发条件即利用懒加载方式请求数据的触发条件,在本发明的一种实施方式中,第三触发条件可以用户的点击、滚屏、鼠标经过或者延迟时间到达等等,可以通过监测在页面中加入的脚本语言JavaScript事件来判断第三触发条件是否满足。
在本发明的一种实施方式中,通过文本框的下拉框展示匹配结果,下拉框配置为可以进行滚屏或者翻页,第三触发条件为用户进行滚屏或者翻页操作,下拉框在通过第一屏或第一页显示基于第二触发条件获得的一批匹配结果后,当用户进行滚屏或者翻页时,即满足第三触发条件,客户端会向服务端请求新一批的数据,下拉框通过第二屏或第二页显示基于该新一批的数据获得的匹配结果。当用户再次进行滚屏或者翻页时,客户端会再向服务端请求新一批的数据,以此类推,从而在查询数据量较大时,通过懒加载方式将查询结果分屏或分页显示出来,进而减轻服务端的压力,提高页面的加载速度,改善用户体验。
在本发明实施例中,查询字段集可以作为缓存数据保存在客户端本地,保存的方式可以为storage缓存方式或者cookie缓存方式,可以根据具体业务需求确定使用哪种方式。
在本发明实施例中,在预先保存的查询字段集中匹配包含所述输入字段的查询字段的步骤具体包括:
当输入字段不为空时,对查询字段集中的每个查询字段执行下述外循环步骤:
对比当前查询字段和输入字段的长度,若当前查询字段的长度大于等于输入字段的长度,则对当前查询字段的第1个字符至第1+n个字符,逐一执行内循环步骤,直至确定当前查询字段为匹配结果,n为当前查询字段与输入字段的长度差值。内循环步骤包括:从当前字符开始截取长度为m的字段,m为输入字段的长度值,然后,判断截取的字段是否与输入字段相同,若是,则确定当前查询字段为匹配结果。
当输入字段为空时,即用户删除了之前在文本框内输入的内容,则不执行匹配步骤,结合具体的应用场景,在页面上可以不进行任何展示,或者继续展示之前展示的匹配结果。
本发明提供的模糊查询的方法还包括对查询字段集进行更新的步骤,在该步骤中,客户端接收服务端推送的查询字段更新数据,然后利用该更新数据更新保存的查询字段集中的对应的查询字段。在本发明的一种是实施方式中,对查询字段集的更新是通过服务端推送事件Server-Sent Events(SSE)功能实现的。在服务端数据库中的一些查询字段更新时,不需要等待客户端发送相应的请求,服务端会通过SSE功能将更新的这些查询字段推送至客户端对客户端保存的对应查询字段进行更新,使得服务端与客户端做到数据同步,这样用户在客户端进行模糊查询的时候,查询出的数据就是最新数据,保证查询结果的实时性。
下面结合一具体的应用场景,对本发明提供的模糊查询方法进行更为详细的说明。
在本应用场景中,页面中创建有输入input表单和无序列表ul标签,input表单即页面中的文本框,提供给用户进行文本输入,ul标签配置在文本框下面,用于展示匹配结果的列表。
如图2所示,在本应用场景中,第一触发条件和第二触发条件都配置为文本框内输入字段发生变化。客户端会对input表单进行事件监听,监听文本框内输入字段是否发生变化,如果用户进行了输入操作,客户端就会监听到文本框内输入字段的变化,这时候客户端就会获取当前输入字段,然后判断是否有缓存的查询字段集,即判断用户是否是第一次进入该页面进行操作。
若存在缓存的查询字段集,则请求缓存的查询字段进行后续匹配步骤,即直接用本地数据进行匹配步骤即可。若不存在,则通过懒加载方式向服务端请求查询字段,在本应用场景中,第三触发条件为用户进行翻页操作,即在文本框下面分页展示匹配结果的列表。
服务端通过json数据格式返回客户端请求的查询字段,客户端将返回的查询字段保存在缓存中。然后利用缓存的查询字段进行匹配步骤,在查询字段集中匹配包含输入字段的查询字段。在本应用场景中,定义变量sFind,将输入字段赋值给sFind,定义变量resultList表示查询字段集,先判断sFind是否为空,如果不为空,拿到sFind的值,例如:sFind=“清华”。遍历resultList,拿到其中每个查询字段的值resultList[i],i是遍历resultList的循环索引值,i≥0,然后将得到的sFind和resultList[i]放到定义的方法find()中,然后定义一个变量data,接收find()的返回值。
定义变量nSize等于输入字段的长度值,定义变量nLen等于resultList[i]的长度值,在方法find()中,对于一个查询字段resultList[i],如果其nLen≥nSize,该resultList[i]就进入内循环步骤,如果nSize大于所有resultList中所有查询字段的nLen,则方法find()返回值-1。
如果进入内层循环,循环次数等于nLen-nSize+1,定义变量sCompare=resultList[i].substring(j,j+nSize),通过JavaScript的substring()方法,截取resultList[i]中第j个字符开始至第j+nSize个字符结束之间的字段sCompare,如果sCompare等于sFind,就返回j,j是内层循环索引值,j≥0,如果内层循环的循环次数执行完成后,没有sCompare等于sFind,则返回值-1。data接收到find()的返回值后,判断是否有匹配结果,如果返回值大于等于0,就说明有匹配结果,如果小于0,说明没有匹配结果。
在有匹配结果时,展示匹配结果列表,将查询字段resultList[i]放到列表项目li标签内,然后将所有列表项目li标签放到无序列表ul标签里,从而在页面上展示出resultList[i]的值的列表,即匹配得到的查询字段的列表。当没有匹配结果时,展示没有匹配结果的提示信息,可以在列表中展示例如:“未匹配到清华”的提示信息。
在匹配结果展示后,继续监听文本框内输入字段是否发生变化,循环执行上述步骤,如图3所示,客户端浏览器加载页面html文件,对html进行渲染展示,为用户呈现页面,用户在呈现的页面中进行输入操作,从而满足第一触发条件,客户端根据用户的输入字段进行匹配获得匹配结果,然后浏览器将匹配结果渲染展示在页面内,然后继续等待用户后续输入操作,如此循环执行。
本发明实施例提供的模糊查询的方法,客户端通过监视用户行为实时调用本地保存的查询字段集匹配包含用户输入字段的查询字段,从而获得匹配结果,解决了传统方法频繁请求服务端数据库的问题,减轻了服务端压力,服务端不用频繁向客户端推送数据,提高了数据交互速度。并且通过本发明提供的外内循环步骤,整个查询过程在客户端本地完成,匹配结果会实时展现,不用等待,提高了用户体验。客户端向服务端发送查询请求的时机和方式可以结合具体的应用场景进行设置,在查询数据量较大时,可以通过懒加载方式进行查询,并将查询结果分屏或分页显示出来,进一步减轻服务端的压力,提高页面的加载速度,改善用户体验。同时,服务端数据库数据变化后,客户端展示数据也会更新,保证本地数据的实时性。
本发明实施例还提供一种模糊查询的装置,如图4所示,该装置400包括:获取模块401、匹配模块402和展示模块403。
获取模块401用于当满足预定义的第一触发条件时,获取当前待查询的输入字段。
匹配模块402用于在获取模块获取页面文本框内的当前输入字段后,在预先保存的查询字段集中匹配包含所述输入字段的查询字段,以获得匹配结果。
展示模块403用于当存在匹配结果时,展示匹配结果。
本发明实施例提供的模糊查询的装置还包括:第一请求模块。第一请求模块用于执行下述步骤:
当满足于预定义的第二触发条件时,判断是否存在已保存的对应于该第二触发条件的查询字段集,若不存在,则根据对应于所述第二触发条件的预定义的查询条件向服务端发送查询请求,然后接收服务端根据查询请求返回的查询结果并保存为所述查询字段集。
本发明实施例提供的模糊查询的装置还包括:第二请求模块。第二请求模块用于在匹配模块执行所述匹配步骤之后,每当满足于预定义的第三触发条件时,根据对应于所述第三触发条件的预定义的查询条件向服务端发送查询请求,然后接收服务端根据查询请求返回的查询结果并保存为所述查询字段集。
匹配模块还用于在所述返回的查询结果中匹配包含所述输入字段的查询字段,以获得匹配结果。
展示模块还用于当存在匹配结果时,展示该匹配结果。
本发明实施例提供的模糊查询的装置还包括:监听模块。监听模块用于监听页面文本框内输入字段的变化,当输入字段发生变化时,则确定满足预定义的第一触发条件。
在本发明实施例中,匹配模块进一步用于当输入字段不为空时,对查询字段集中的每个查询字段执行下述外循环步骤:
对比当前查询字段和输入字段的长度,
若当前查询字段的长度大于等于输入字段的长度,则对当前查询字段的第1个字符至第1+n个字符,逐一执行内循环步骤,直至确定当前查询字段为匹配结果,n为当前查询字段与输入字段的长度差值;
所述内循环步骤包括:
从当前字符开始截取长度为m的字段,m为输入字段的长度值;
判断截取的字段是否与输入字段相同;
若是,则确定当前查询字段为匹配结果。
本发明实施例提供的模糊查询的装置还包括:更新模块。更新模块用于接收服务端推送的查询字段更新数据,然后利用所述更新数据更新保存的查询字段集中的对应的查询字段。
本发明实施例提供的模糊查询的装置,客户端通过监视用户行为实时调用本地保存的查询字段集匹配包含用户输入字段的查询字段,从而获得匹配结果,解决了传统方法频繁请求服务端数据库的问题,减轻了服务端压力,服务端不用频繁向客户端推送数据,提高了数据交互速度。并且通过本发明提供的外内循环步骤,整个查询过程在客户端本地完成,匹配结果会实时展现,不用等待,提高了用户体验。客户端向服务端发送查询请求的时机和方式可以结合具体的应用场景进行设置,在查询数据量较大时,可以通过懒加载方式进行查询,并将查询结果分屏或分页显示出来,进一步减轻服务端的压力,提高页面的加载速度,改善用户体验。同时,服务端数据库数据变化后,客户端展示数据也会更新,保证本地数据的实时性。
图5示出了可以应用本发明实施例的模糊查询方法或模糊查询装置的示例性系统架构500。
如图5所示,系统架构500可以包括终端设备501、502、503,网络504和服务器505。网络104用以在终端设备501、502、503和服务器505之间提供通信链路的介质。网络504可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备501、502、503通过网络504与服务器505交互,以接收或发送消息等。终端设备501、502、503上可以安装有各种通讯客户端应用,例如获取用户输入字段进行模糊查询的网页浏览器应用等。
终端设备501、502、503可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器505可以是提供各种服务的服务器,例如响应终端设备501、502、503的查询请求返回查询结果的服务器。服务器可以将相应查询结果的更新数据推送给终端设备。
需要说明的是,本发明实施例所提供的模糊查询的方法一般由终端设备501、502、503执行,相应地,模糊查询的装置一般设置于终端设备501、502、503中。
应该理解,图5中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图6,其示出了适于用来实现本发明实施例的电子设备的计算机系统600的结构示意图。图6示出的电子设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图6所示,计算机系统600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有系统600操作所需的各种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(CPU)601执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括获取模块、匹配模块、展示模块、第一请求模块、第二请求模块、监听模块和更新模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,匹配模块还可以被描述为“当存在匹配结果时,展示匹配结果的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:
当满足预定义的第一触发条件时,获取当前待查询的输入字段;
在预先保存的查询字段集中匹配包含所述输入字段的查询字段,以获得匹配结果;
当存在匹配结果时,展示所述匹配结果。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (14)

1.一种模糊查询的方法,其特征在于,包括:
当满足预定义的第一触发条件时,获取当前待查询的输入字段;
在预先保存的查询字段集中匹配包含所述输入字段的查询字段,以获得匹配结果;
当存在匹配结果时,展示所述匹配结果。
2.根据权利要求1所述的方法,其特征在于,预先保存查询字段集包括:
当满足于预定义的第二触发条件时,判断是否存在已保存的对应于该第二触发条件的查询字段集;
若不存在,则根据对应于所述第二触发条件的预定义的查询条件发送查询请求;
接收根据所述查询请求返回的查询结果并保存为所述查询字段集。
3.根据权利要求2所述的方法,其特征在于,在展示所述匹配结果之后,还包括:
每当满足于预定义的第三触发条件时,根据对应于所述第三触发条件的预定义的查询条件发送查询请求;
接收根据所述查询请求返回的查询结果并存入所述查询字段集;
在所述返回的查询结果中匹配包含所述输入字段的查询字段,以获得匹配结果;
当存在匹配结果时,展示该匹配结果。
4.根据权利要求1至3中任一项所述的方法,其特征在于,还包括:
监听页面文本框内输入字段的变化;
当输入字段发生变化时,则确定满足预定义的第一触发条件。
5.根据权利要求1至3中任一项所述的方法,其特征在于,所述在预先保存的查询字段集中匹配包含所述输入字段的查询字段包括:
当输入字段不为空时,对查询字段集中的每个查询字段执行下述外循环步骤:
对比当前查询字段和输入字段的长度,
若当前查询字段的长度大于等于输入字段的长度,则对当前查询字段的第1个字符至第1+n个字符,逐一执行内循环步骤,直至确定当前查询字段为匹配结果,n为当前查询字段与输入字段的长度差值;
所述内循环步骤包括:
从当前字符开始截取长度为m的字段,m为输入字段的长度值;
判断截取的字段是否与输入字段相同;
若是,则确定当前查询字段为匹配结果。
6.根据权利要求1至3中任一项所述的方法,其特征在于,还包括:
接收查询字段更新数据;
利用所述更新数据更新保存的查询字段集中的查询字段。
7.一种模糊查询的装置,其特征在于,包括:
获取模块,用于当满足预定义的第一触发条件时,获取当前待查询的输入字段;
匹配模块,用于在预先保存的查询字段集中匹配包含所述输入字段的查询字段,以获得匹配结果;
展示模块,用于当存在匹配结果时,展示所述匹配结果。
8.根据权利要求7所述的装置,其特征在于,还包括:
第一请求模块,用于当满足于预定义的第二触发条件时,判断是否存在已保存的对应于该第二触发条件的查询字段集;
若不存在,则根据对应于所述第二触发条件的预定义的查询条件发送查询请求;
接收根据所述查询请求返回的查询结果并保存为所述查询字段集。
9.根据权利要求8所述的装置,其特征在于,还包括:
第二请求模块,用于在展示所述匹配结果之后,每当满足于预定义的第三触发条件时,根据对应于所述第三触发条件的预定义的查询条件发送查询请求,然后接收根据所述查询请求返回的查询结果并存入所述查询字段集;
所述匹配模块还用于在所述返回的查询结果中匹配包含所述输入字段的查询字段,以获得匹配结果;
所述展示模块还用于当存在匹配结果时,展示该匹配结果。
10.根据权利要求7至9中任一项所述的装置,其特征在于,还包括:
监听模块,用于监听页面文本框内输入字段的变化,当输入字段发生变化时,则确定满足预定义的第一触发条件。
11.根据权利要求7至9中任一项所述的装置,其特征在于,所述匹配模块进一步用于当输入字段不为空时,对查询字段集中的每个查询字段执行下述外循环步骤:
对比当前查询字段和输入字段的长度,
若当前查询字段的长度大于等于输入字段的长度,则对当前查询字段的第1个字符至第1+n个字符,逐一执行内循环步骤,直至确定当前查询字段为匹配结果,n为当前查询字段与输入字段的长度差值;
所述内循环步骤包括:
从当前字符开始截取长度为m的字段,m为输入字段的长度值;
判断截取的字段是否与输入字段相同;
若是,则确定当前查询字段为匹配结果。
12.根据权利要求7至9中任一项所述的装置,其特征在于,还包括:
更新模块,用于接收查询字段更新数据,然后利用所述更新数据更新保存的查询字段集中的对应的查询字段。
13.一种模糊查询的电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6中任一所述的方法。
14.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-6中任一所述的方法。
CN201711159764.5A 2017-11-20 2017-11-20 一种模糊查询的方法和装置 Pending CN110019393A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711159764.5A CN110019393A (zh) 2017-11-20 2017-11-20 一种模糊查询的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711159764.5A CN110019393A (zh) 2017-11-20 2017-11-20 一种模糊查询的方法和装置

Publications (1)

Publication Number Publication Date
CN110019393A true CN110019393A (zh) 2019-07-16

Family

ID=67186474

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711159764.5A Pending CN110019393A (zh) 2017-11-20 2017-11-20 一种模糊查询的方法和装置

Country Status (1)

Country Link
CN (1) CN110019393A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112148748A (zh) * 2020-09-16 2020-12-29 上海中通吉网络技术有限公司 Sql字段别名的自动提示方法、装置和设备
CN112685445A (zh) * 2020-12-29 2021-04-20 杭州旷云金智科技有限公司 数据查询方法及装置、存储介质及电子设备
CN115202487A (zh) * 2022-06-24 2022-10-18 济南浪潮数据技术有限公司 一种目标项输入方法、装置、设备及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102063450A (zh) * 2010-04-16 2011-05-18 百度在线网络技术(北京)有限公司 一种基于网络的供用户进行文字输入的方法与设备
CN102576368A (zh) * 2009-08-31 2012-07-11 谷歌公司 用于选择和呈现与用户输入相关的回答框作为查询建议的框架
US20150154316A1 (en) * 2013-12-02 2015-06-04 Qbase, LLC Search suggestions of related entities based on co-occurrence and/or fuzzy-score matching
CN105760537A (zh) * 2016-03-14 2016-07-13 深圳市艾塔文化科技有限公司 一种在线自学习的信息处理方法和信息处理装置
CN107291923A (zh) * 2017-06-29 2017-10-24 北京京东尚科信息技术有限公司 信息处理方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102576368A (zh) * 2009-08-31 2012-07-11 谷歌公司 用于选择和呈现与用户输入相关的回答框作为查询建议的框架
CN102063450A (zh) * 2010-04-16 2011-05-18 百度在线网络技术(北京)有限公司 一种基于网络的供用户进行文字输入的方法与设备
US20150154316A1 (en) * 2013-12-02 2015-06-04 Qbase, LLC Search suggestions of related entities based on co-occurrence and/or fuzzy-score matching
CN105760537A (zh) * 2016-03-14 2016-07-13 深圳市艾塔文化科技有限公司 一种在线自学习的信息处理方法和信息处理装置
CN107291923A (zh) * 2017-06-29 2017-10-24 北京京东尚科信息技术有限公司 信息处理方法和装置

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
A.FIRAT等: "Fuzzy set theory in object-oriented databases: a prototype implementation using Versant ODBMS and Visual C++", 《1998 CONFERENCE OF THE NORTH AMERICAN FUZZY INFORMATION PROCESSING SOCIETY - NAFIPS (CAT. NO.98TH8353)》 *
MYYOUTH: "前端js模糊搜索(模糊查询)", 《HTTPS://WWW.CNBLOGS.COM/-YOUTH/P/6404808.HTML》 *
POLARIS丶: "用js实现模糊查询的几种方法", 《HTTPS://WWW.JIANSHU.COM/P/4CD4F74A0B20》 *
李晓亮: "地面沉降灾害管理信息系统开发研究", 《中国优秀硕士学位论文全文数据库基础科学辑》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112148748A (zh) * 2020-09-16 2020-12-29 上海中通吉网络技术有限公司 Sql字段别名的自动提示方法、装置和设备
CN112685445A (zh) * 2020-12-29 2021-04-20 杭州旷云金智科技有限公司 数据查询方法及装置、存储介质及电子设备
CN115202487A (zh) * 2022-06-24 2022-10-18 济南浪潮数据技术有限公司 一种目标项输入方法、装置、设备及介质

Similar Documents

Publication Publication Date Title
CN108287925B (zh) 一种显示页面元素的方法和装置
US10764390B2 (en) Caching core JavaScript bundles
CN107451109A (zh) 报表生成方法及系统
CN109683998A (zh) 国际化实现方法、装置和系统
CN108984553B (zh) 缓存方法和装置
US20130166527A1 (en) System and methods thereof for dynamically updating the contents of a folder on a device
CN107967284A (zh) 用于存储、查询订单信息的方法和装置
CN110990736A (zh) 页面加载方法、装置、终端设备和存储介质
US10908930B2 (en) Hybrid interactivity in JavaScript webpage user interfaces
CN110019393A (zh) 一种模糊查询的方法和装置
CN113590974B (zh) 推荐页面配置方法、装置、电子设备和计算机可读介质
US12020071B2 (en) Resource pre-fetch using age threshold
CN113626113B (zh) 一种页面渲染方法和装置
CN107562941A (zh) 数据处理方法及其系统
CN113239278A (zh) 信息展示方法、装置、电子设备以及存储介质
CN109710604A (zh) 数据处理方法、装置、系统、计算机可读存储介质
CN107256244A (zh) 数据处理方法和系统
CN112819490A (zh) 一种预告秒杀广告的装置和方法
KR20210059000A (ko) 구매를 위한 대안적인 제품들의 플러그-인 인에이블형 식별 및 디스플레이
CN112016017A (zh) 确定特征数据的方法和装置
CN110390062A (zh) 用于查询信息的方法及装置
CN113326454B (zh) 展示标签的方法和装置
CN109754274A (zh) 一种确定目标对象的方法和装置
CN115033268A (zh) 页面内容的配置方法、装置、电子设备及存储介质
CN113837623A (zh) 一种基于Shopify的预计投递时间显示方法及相关设备

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20190716

RJ01 Rejection of invention patent application after publication