首页> 中国专利> 一种独立搜索的ApacheLucene评分高亮方法

一种独立搜索的ApacheLucene评分高亮方法

摘要

本发明公开了一种独立搜索的ApacheLucene评分高亮方法;其特征在于:该方法如下:数据接收,高亮服务接收客户端通过http协议传输过来的搜索语句参数;数据转化,将步骤1接收搜索语句参数转成Apache Lucene的Query对象;数据预处理,初始化Apache Lucene的评分器(QueryScorer)以及初始化高亮器(Highlighter);通过评分器(QueryScorer)对Query对象进行评分和分词,得到Query的词组,对需要做高亮的文本进行分词器分词,得到文本词;数据处理,遍历文本分词后的结果,与通过评分器(QueryScorer)评分后的Query分词结果进行一一匹配;数据输出,通过步骤4的匹配,如果能匹配上,则加上高亮标记,否则返回原始内容。

著录项

  • 公开/公告号CN106933999A

    专利类型发明专利

  • 公开/公告日2017-07-07

    原文格式PDF

  • 申请/专利权人 湖南蚁坊软件股份有限公司;

    申请/专利号CN201710117547.3

  • 发明设计人 何小成;黄三伟;

    申请日2017-03-01

  • 分类号G06F17/30;

  • 代理机构山东博睿律师事务所;

  • 代理人丁波

  • 地址 410000 湖南省长沙市高新开发区文轩路27号麓谷钰园A4栋N单元6层605号房

  • 入库时间 2023-06-19 02:48:20

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-05-08

    授权

    授权

  • 2017-08-01

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20170301

    实质审查的生效

  • 2017-07-07

    公开

    公开

说明书

技术领域

本发明涉及网络搜索技术领域,确切地说是一种独立搜索的ApacheLucene评分高亮方法。

背景技术

在当今基于Apache Lucene实现的搜索引擎如:Apache Solr、ElasticSearch等中,高亮与搜索都是捆绑在一起使用的,因为高亮需要文档的原始内容;但是在亿级数据量的大数据生产环境中,原始内容存储会带来磁盘IO性能瓶颈,以及主备节点数据同步慢的性能问题;

本发明提供了一种方法,将搜索与高亮分开,既搜索服务只索引不存储原始内容;高亮服务单独部署;这样既可以提升搜索性能,也可以提升高亮的性能以及可扩展性。

发明内容

本发明要解决的技术问题是将搜索与高亮分开,既搜索服务只索引不存储原始内容;高亮服务单独部署;这样既可以提升搜索性能,也可以提升高亮的性能以及可扩展性。

为解决上述技术问题,本发明采用如下技术手段:

一种独立搜索的ApacheLucene评分高亮方法;其特征在于:该方法包括如下步骤:

步骤1:数据接收,高亮服务接收客户端通过http协议传输过来的搜索语句参数;

步骤2:数据转化,将步骤1接收搜索语句参数转成Apache Lucene的Query对象;

步骤3:数据预处理,初始化Apache Lucene的评分器(QueryScorer)以及初始化高亮器(Highlighter);通过评分器(QueryScorer)对Query对象进行评分和分词,得到Query的词组,对需要做高亮的文本进行分词器分词,得到文本词;

步骤4:数据处理,遍历文本分词后的结果,与通过评分器(QueryScorer)评分后的Query分词结果进行一一匹配;

步骤5:数据输出,通过步骤4的匹配,如果能匹配上,则加上高亮标记,否则返回原始内容。

作为优选,本发明更进一步的技术方案是:

所述的数据转化,编写HighlightHandler类,继承Apache Solr的RequestHandlerBase抽象类以及实现SolrCoreAware、PluginInfoInitialized接口;然后重写handleRequestBody方法,接着调用QParser的getParser方法得到QParser将搜索语句转成Apache Lucene的Query对象。

所述的数据预处理,new QueryScorer且构造函数传入Query参数,newHighlighter构造函数传入QueryScorer。

所述的数据输出,调用Highlighter的getBestFragment方法传入分词器以及需要高亮的文本,得到高亮后的文本。

所述的数据接收之前需要先单独部署一套Apache Solr集群,不存储数据,专门用来做高亮。

所述的Apache Lucene评分机制且独立于搜索的高亮方法可安插插件,插件为在solrconfig.xml中配置<requestHandler>,class的HighlightHandler。

本发明主要解决了Apache Solr在亿级数据量的大数据生成环境中,存在的搜索与高亮性能问题。搜索服务与高亮服务独立分开部署,这样可以使得功能的可扩展性大大提升;同时搜索服务不需要存储原始内容,也极大的提升了搜索性能(因为索引文件变小了,磁盘IO开销减小);同时高亮服务可以单独的做高亮,不需要关心搜索,而且高亮服务可以横向扩展增强并发量。

附图说明

图1为本发明的一种独立搜索的ApacheLucene评分高亮方法流程图。

图2为本发明的一种独立搜索的ApacheLucene评分高亮方法结构框图。

具体实施方式

下面结合实施例,进一步说明本发明。

具体实施例1:

参见图1、2可知,本发明通过:

1、高亮服务接收客户端通过http协议传输过来的搜索语句参数;

2、将搜索语句参数转成Apache Lucene的Query对象;

3、创建Apache Lucene的评分器(QueryScorer)以及高亮器(Highlighter);

4、通过评分器(QueryScorer)对Query对象进行评分和分词;

5、对需要做高亮的文本进行分词器分词;

6、遍历文本分词后的结果,与通过评分器(QueryScorer)评分后的Query分词结果进行一一匹配;如果能匹配上,则加上高亮标记,否则返回原始内容。

具体实施例2:

本发明1、单独部署一套Apache Solr集群,不存储数据,专门用来做高亮。

2、编写HighlightHandler类,继承Apache Solr的RequestHandlerBase抽象类以及实现SolrCoreAware、PluginInfoInitialized接口;然后重写handleRequestBody方法,接着调用QParser的getParser方法得到QParser将搜索语句转成Apache Lucene的Query对象;接着new QueryScorer且构造函数传入Query参数,new Highlighter构造函数传入QueryScorer,最后调用Highlighter的getBestFragment方法传入分词器以及需要高亮的文本,得到高亮后的文本。这样不需要索引信息不需要与磁盘交互,可以避免因磁盘IO带来的性能瓶颈。

3、在solrconfig.xml中配置<requestHandler>class为HighlightHandler,这种插拔式的配置非常灵活,且可扩展性强。

由于以上所述仅为本发明的具体实施方式,但本发明的保护不限于此,任何本技术领域的技术人员所能想到本技术方案技术特征的等同的变化或替代,都涵盖在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号