[发明专利]一种基于solr的搜索方法及搜索应用服务器AUS在审
申请号: | 201510219620.9 | 申请日: | 2015-04-30 |
公开(公告)号: | CN104778278A | 公开(公告)日: | 2015-07-15 |
发明(设计)人: | 王师;张春飞;彭光伟;罗鑫;陆海军;宋海华 | 申请(专利权)人: | 亚信科技(南京)有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京中博世达专利商标代理有限公司 11274 | 代理人: | 张娜 |
地址: | 210013 江苏省南京*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 solr 搜索 方法 应用 服务器 aus | ||
技术领域
本发明涉及信息技术处理领域,尤其涉及一种基于solr的搜索方法及搜索应用服务器AUS。
背景技术
目前,应用广泛的企业级搜索应用服务器是阿帕奇(Apache)提供的基于Lucene的全文搜索服务器solr。其中,solr是一个高性能,采用Java5开发的全文搜索服务器,它的检索方式为:solr中的索引程序扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置;当用户查询某一词时,solr中的检索程序根据事先建立的索引进行查找,并将查找的结果分析处理后反馈给用户。
在实际应用中,solr只对外提供了同步响应的超文本传送协议(英文:Hypertext transfer protocol,缩写:http)接口方式,该同步响应方式要求solr每次接收到用户发送的查询请求时,必须检索完整个节点的数据,并对检索结果分析处理后,才对用户的查询请求作出响应。但是,随着数据量的增长、业务复杂度的增加,solr从检索信息到提取出最终结果数据并响应给用户的处理时间势必会增长,从而造成响应超时等异常问题。
发明内容
本发明的实施例提供一种基于solr的搜索方法及搜索应用服务器AUS,以解决现有采用同步响应方式进行检索时响应超时的问题。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,本发明实施例提供一种基于solr的搜索方法,应用于搜索应用服务器AUS;所述方法包括:
步骤a1、接收用户输入的搜索请求;其中,所述搜索请求包含:至少一个搜索字段及搜索命令关键字;
步骤a2、将搜索内容划分为n组;其中,n大于1的整数;
步骤a3、同时对每一组搜索内容进行检索,获取n组与所述搜索字段相关的检索结果;
步骤a4、将所述n组检索结果合并后,根据所述搜索命令关键字显示给所述用户。
在第一方面的第一种可能的实现方式中,结合第一方面,所述接收用户输入的搜索请求包括:
接收用户通过用户界面上的搜索框输入的搜索请求。
在第一方面的第二种可能的实现方式中,结合第一方面或第一方面的第一种可能的实现方式,在将搜索内容划分为n组之前,所述方法还包括:
判断所述搜索命令关键字是否为原生solr可支撑的关键字;
若确定所述搜索命令关键字为原生solr不可支撑的关键字,则执行步骤a2~a4。
在第一方面的第三种可能的实现方式中,结合第一方面的第二种可能的实现方式,所述判断所述搜索命令关键字是否为原生solr可支撑的关键字包括:
解析所述搜索命令关键字所对应的业务类型;
若所述业务类型不包含在所述原生solr支撑的业务范围之内,则确定所述搜索命令关键字为原生solr不可支撑的关键字;
若所述业务类型包含在所述原生solr支撑的业务范围之内,则确定所述搜索命令关键字为原生solr可支撑的关键字。
在第一方面的第四种可能的实现方式中,结合第一方面的第二种可能的实现方式至第一方面的第三种实现方式,所述方法还包括:
若确定所述搜索命令关键字为原生solr可支撑的关键字,则按照预设顺序对所述搜索请求对应的搜索内容依次进行检索;
将检索结果显示给所述用户。
第二方面,本发明实施例提供一种搜索应用服务器AUS,所述搜索应用服务器AUS包括:solrj客户端、solrcloud服务器、kafka集群以及合并模块;
所述solrj客户端,用于接收用户输入的搜索请求,并向所述solrcloud服务器发送所述搜索请求;其中,所述搜索请求包含:至少一个搜索字段及搜索命令关键字;
所述solrcloud服务器,用于将接收的所述solrj客户端发送的所述搜索请求对应的搜索内容划分为n组;其中,n大于1的整数;
并同时对每一组搜索内容进行检索,将获取的n组与所述搜索字段相关的检索结果发送至所述kafka集群;
所述合并模块、用于读取所述kafka集群中所述n组的检索结果,并将合并后的所述n组检索结果根据所述搜索命令关键字处理后写入所述kafka集群;
所述kafka集群,用于将所述合并处理后的结果显示给所述用户。
在第二方面的第一种可能的实现方式中,结合第二方面,所述solrj客户端,具体用于:
接收用户通过用户界面上的搜索框输入的搜索请求。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于亚信科技(南京)有限公司,未经亚信科技(南京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510219620.9/2.html,转载请声明来源钻瓜专利网。