一种数据搜索系统及方法
【专利摘要】本发明公开了一种数据搜索系统及方法,主要透过用户端接收用户输入的关键字,所述关键字为汉字或字母;透过传输模块将所述关键字数据异步传输给服务器端;以及服务器端接收所述关键字数据,判断所述关键字的类型,若为汉字,则自所述服务器端的数据库查询数据,并将查询结果透过所述传输模块传回至所述用户端,若为字母,则所述服务器端判断所述数据库中是否存在临时表,若是则自该临时表查询数据,并将查询结果透过所述传输模块传回至所述用户端,若不存在所述临时表,则创建临时表,并将所述数据库中的原始数据取出转换成字母数据储存在所述临时表中,之后自所创建临时表查询数据并透过所述传输模块返回给所述用户端。
【专利说明】
一种数据搜索系统及方法
技术领域
[0001]本发明涉及数据搜索技术领域,特别是涉及一种利用AJAX异步传输动态实现数据搜索技术。
【背景技术】
[0002]Internet正在以惊人的速度发展着,网络中的页面数量已经达数百亿,传统的检索方法不再适用于WEB信息检索,搜索引擎成为重要的网络检索工具之一。传统的搜索引擎基于一次性“请求-响应”模式(即同步传输模式),搜索引擎根据用户请求从诸多庞杂的互联网数据中快速的取得与所述请求匹配的数据供用户利用,因此搜索速度及匹配度亦成为其执行效率的重要指标,特别是在中文搜索环境下,由于中文并不像英文那样,只需要依照字母的顺序排列组合就能够轻易的进行搜索,在不影响搜索速度及匹配度的情形下,为使用户在中文搜索环境下亦可使用输入拼音、字母方式搜索相关数据,现有的中文搜索引擎在用户输入界面提供下拉框搜索匹配功能,当用户输入字母或拼音后,出现下拉框选项供用户点选与其输入匹配的若干条内容。该方法虽可提供用户在中文搜索环境下进行中文汉字或拼音/字母搜索,然为提供该下拉框搜索匹配功能,现有技术采用人工录入方式设置下拉框显示的内容,如果所要设置的数据量很大的情形下仍采用人工录入方式,不仅费时费力,而且还会出现数据录入错误。
[0003]因此,有必要提出一种新的数据搜索技术,以避免上述现有搜索技术所面临的诸多问题,实已成为目前业界亟待克服之难题。
【发明内容】
[0004]鉴于上述现有技术的缺失,本发明之目的在于提出一种新的数据搜索系统及方法,其可自动动态录入多种匹配搜索功能以实现汉字、拼音搜索转换,避免人工录入转换引起的效率低、数据错误等问题。
[0005]本发明之另一目的在于提出一种新的数据搜索系统及方法,其可提供异步搜索功能,分步完成搜索,用户无需等待即可持续进行搜索操作。
[0006]为达上述及其他目的,本发明提出一种数据搜索系统,包括:用户端,接收用户输入的关键字,所述关键字为汉字或字母;传输模块,将所述关键字数据异步传输给服务器端;服务器端,接收所述关键字数据,判断所述关键字的类型,若为汉字,则自所述服务器端的数据库查询数据,并将查询结果透过所述传输模块传回至所述用户端,若为字母,则所述服务器端判断所述数据库中是否存在临时表,若是则自该临时表查询数据,并将查询结果透过所述传输模块传回至所述用户端,若不存在所述临时表,则创建临时表,并将所述数据库中的原始数据取出转换成字母数据储存在所述临时表中,之后自所创建临时表查询数据并透过所述传输模块返回给所述用户端。
[0007]较佳地,本发明之服务器端包括:判断模块,用于判断所述关键字的类型;创建模块,用于创建所述临时表;转换模块,用于将所述数据库中的原始数据取出转换成字母数据储存在所述临时表中;以及查询模块,用于自所述数据库或所述临时表查询与所述关键字匹配的数据;
[0008]较佳地,本发明之临时表是储存在内存中。
[0009]较佳地,所述服务器端还包括数据处理模块,用于对所述传输模块所传输的关键字数据进行处理以去除不安全字符,如*、空格等字符。
[00?0] 较佳地,所述传输模块使用AJAX(Asynchronous JavaScript XML)数据格式将所述关键字传输给所述服务器端。
[0011]本发明还提出一种利用上述搜索系统进行数据搜索的方法,该方法包括:步骤S1:用户自用户端输入关键字,所述关键字为汉字或字母;步骤S2:将所述关键字数据异步传输给服务器端;步骤S3:服务器端判断所述关键字的类型,若是汉字则执行步骤S4,若是字母则执行步骤S5;步骤S4:自所述服务器端的数据库查询与所述关键字匹配的数据返回给所述用户端;步骤S5:所述服务器端判断是否存在储存有字母数据的临时表,若有则进入步骤S8,若无则进入步骤S6;步骤S6:创建一临时表;步骤S7:自所述数据库取出原始数据并将其转换成拼音数据储存在所创建的临时表中;步骤S8:自所述临时表查询与所述关键字匹配的数据返回给所述用户端。
[0012]较佳地,本发明之方法步骤S2中,是使用AJAX将所述关键字传输给所述服务器端。
[0013]较佳地,本发明之方法步骤S3中,在所述服务器端接收到所述关键字数据后还包括去除所述关键字中不安全字符的步骤。
[0014]较佳地,本发明之方法步骤S6中,是采用SQL(Structured Query Language,结构查询语言)语句创建所述临时表。
[0015]与现有技术相比,本发明主要在服务器端针对用户输入的关键字进行分类查询,若输入的关键字是汉字直接自数据库查询数据返回给用户,若输入的关键字是字母则自临时表查询(该临时表若不存在,则由服务器端先建立所述临时表),本发明之临时表可根据数据库中的原始数据动态生成,且不改变原始数据结构,与现有技术采用人工录入方式相比,本发明可节约人力成本且可保证临时表中数据无误进而可提升数据搜索匹配度;再者,本发明之临时表储存在内存可,可快速读取,进而可提升数据搜索速度。以及,本发明利用例如AJAX使用户端与服务器端进行数据异步传输,能够使得用户端与服务器端响应、交互异步化。
【附图说明】
[0016]下面将以明确易懂的方式,结合【附图说明】优选实施方式,对一种数据搜索系统及方法的上述特性、技术特征、优点及其实现方式予以进一步说明。
[0017]图1是本发明之数据搜索系统之基本架构图;以及
[0018]图2是本发明之数据搜索方法流程图。
[0019]附图标号说明:
[0020 ] 1.用户端,11.传输模块,12.服务器端,120.判断模块,121.创建模块,12 2.查询模块,123.临时表,124.数据库,125.转换模块。
【具体实施方式】
[0021]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照【附图说明】本发明的【具体实施方式】。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。
[0022]为使图面简洁,各图中只示意性地表示出了与本发明相关的部分,它们并不代表其作为产品的实际结构。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘示了其中的一个,或仅标出了其中的一个。在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形。
[0023]请参阅图1,其显示本发明之数据搜索系统基本架构示意图。如图1所示,本发明之数据搜索系统包括用户端10、传输模块11以及服务器端12,以下即对本发明之各组成部分进行详细介绍。
[0024]用户端10,供用户输入其搜索数据所使用的关键字,所述关键字例如为汉字或字母,所述字母例如为汉字拼音或汉字首字母拼音。
[0025]传输模块11,供用户端10与服务器端进行数据交换传输,传输模块11将用户端10输入的关键字数据异步传输给服务器端,并可将服务器端返回的查询数据传输给用户端。本实施例中,传输模块11的使用AJAX(Asynchronous JavaScript XML)异步传输所述关键字数据为服务器端12。本实施例中,用户透过用户端10提供的输入界面(例如键盘)输入关键字触发JavaScript调用AJAX,由AJAX创建包含所述关键字的例如XMLHttpRequest请求,并将所创请求传输给服务器端12,服务器端12针对所述请求进行响应,并将查询结果以字符串或XML格式返回给AJAX,由AJAX将查询结果传输给用户端10。
[0026]服务器端12,与传输模块11连接,接收所述关键字数,对所述关键字类型进行判断,并针对关键字类型进行后续查询处理。如图1所示,服务器端12进一步包括判断模块120,创建模块121、查询模块122、临时表123、数据库124。以下即对服务器端12的各组成部分进行详细说明。
[0027]判断模块120对服务器端12所接收到的关键字类型进行判断,即判断所述关键字是汉字还是字母,若所述关键字是字母,判断模块120还需判断服务器端12是否存在临时表123,最终判断模块120会将判断结果输出给查询模块122、创建模块121。
[0028]创建模块121,在判断模块120判断服务器端不存在临时表123时则自动创建临时表,本实施例中,创建模块121使用SQL语句创建临时表,所创临时表储存在服务器端12的内存中。之后转换模块125自数据库124中取出原始数据,并利用汉字转换拼音技术将所述原始数据转换成汉字拼音或汉字首字母拼音,并将原始数据与汉字拼音或汉字首字母拼音一一对应储存在创建模块所创建的临时表123中。
[0029]查询模块122,根据判断模块的判断结果进行数据查询。如果判断模块120判断用户端10输入的关键字为汉字,则直接自数据库的原始数据中直接查询与所述关键字匹配的数据,并将所查询的数据返回给传输模块11,由传输模块11将所述数据再传输给用户端10。如果判断模块120判断用户端输入的关键字为字母,则自临时表123中查询与所述关键字匹配的数据,并将所查询的数据返回给传输模块U,由传输模块11将所述数据再传输给用户端10。
[0030]于本发明之其他实施例中,其与图1所示实施例之区别在于,本实施例中的服务器端12还包括处理模块(未图示),用于对传输模块11传输过来的关键字数据进行处理,以去除不安全字符。
[0031]透过本发明之图1所示的数据搜索系统执行数据搜索的方法详细流程如图2所示,所述数据搜索方法包括以下步骤。
[0032]步骤S1:由用户在用户端10输入关键字。
[0033]步骤S2:由传输模块11将步骤SI输入的关键字数据依据传输给服务器端12。
[0034]步骤S3:服务器端12的判断模块120首选判断所述关键字的类型是否为汉字,若所述关键字为汉字,则直接执行步骤S8,否则标识所述关键字为字母,则执行步骤S4。
[0035]步骤S4:判断模块120继续判断服务器端12是否存在临时表,若存在则执行步骤S7,若不存在则执行后续步骤S5。
[0036]步骤S5:创建模块122创建临时表123。
[0037]步骤S6:转换模块125自数据库124中取出原始数据并利用汉字转换拼音技术将所述原始数据转换成汉字拼音或汉字首字母拼音,并将原始数据与汉字拼音或汉字首字母拼音一一对应储存在步骤S5所创建的临时表123中。
[0038]步骤S7:查询模块122自临时表123中查询与所述关键字匹配的数据,并将所查询的数据返回给传输模块11,由传输模块11将查询的数据传输给用户端。
[0039]步骤S8:查询模块122自数据库124查询与所述关键字匹配的数据返回给所述用户端10。
[0040]本发明还提出一种数据搜索方法,其与上述方法的区别在于,所述步骤S3中,在所述服务器端12接收到所述关键字数据后还包括去除所述关键字中不安全字符的步骤。
[0041]应当说明的是,上述实施例均可根据需要自由组合。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
【主权项】
1.一种数据搜索系统,其特征在于,包括: 用户端,接收用户输入的关键字,所述关键字为汉字或字母; 传输模块,将所述关键字数据异步传输给服务器端;以及 服务器端,接收所述关键字数据,判断所述关键字的类型,若为汉字,则自所述服务器端的数据库查询数据,并将查询结果透过所述传输模块传回至所述用户端,若为字母,则所述服务器端判断所述数据库中是否存在临时表,若是则自该临时表查询数据,并将查询结果透过所述传输模块传回至所述用户端,若不存在所述临时表,则创建临时表,并将所述数据库中的原始数据取出转换成字母数据储存在所述临时表中,之后自所创建临时表查询数据并透过所述传输模块返回给所述用户端。2.如权利要求1所述的数据搜索系统,其特征在于:所述服务器端还包括: 判断模块,用于判断所述关键字的类型; 创建模块,用于创建所述临时表; 转换模块,用于将所述数据库中的原始数据取出转换成字母数据储存在所述临时表中;以及 查询模块,用于自所述数据库或所述临时表查询与所述关键字匹配的数据。3.如权利要求1所述的数据搜索系统,其特征在于:所述服务器端还包括数据处理模块,用于对所述传输模块所传输的关键字数据进行处理以去除不安全字符。4.如权利要求1所述的数据搜索系统,其特征在于:所述传输模块是利用AsynchronousJavaScript XML引擎将所述关键字传输给所述服务器端。5.一种数据搜索方法,其特征在于,包括: 步骤S1:用户自用户端输入关键字,所述关键字为汉字或字母; 步骤S2:将所述关键字数据异步传输给服务器端; 步骤S3:服务器端判断所述关键字的类型,若是汉字则执行步骤S4,若是字母则执行步骤S5; 步骤S4:自所述服务器端的数据库查询与所述关键字匹配的数据返回给所述用户端; 步骤S5:所述服务器端判断是否存在储存有字母数据的临时表,若有则进入步骤S8,若无则进入步骤S6; 步骤S6:创建一临时表; 步骤S7:自所述数据库取出原始数据并将其转换成拼音数据储存在所创建的临时表中; 步骤S8:自所述临时表查询与所述关键字匹配的数据返回给所述用户端。6.如权利要求5所述的数据搜索方法,其特征在于:所述步骤S2中,是透过Asynchronous JavaScript XML引擎将所述关键字传输给所述服务器端。7.如权利要求5所述的数据搜索方法,其特征在于:所述步骤S3中,在所述服务器端接收到所述关键字数据后还包括去除所述关键字中不安全字符的步骤。8.如权利要求5所述的数据搜索方法,其特征在于:所述步骤S6中,是采用SQL语句创建所述临时表。
【文档编号】G06F17/30GK105912627SQ201610213480
【公开日】2016年8月31日
【申请日】2016年4月7日
【发明人】陈 峰
【申请人】上海斐讯数据通信技术有限公司