[发明专利]一种独立搜索的ApacheLucene评分高亮方法有效
申请号: | 201710117547.3 | 申请日: | 2017-03-01 |
公开(公告)号: | CN106933999B | 公开(公告)日: | 2020-05-08 |
发明(设计)人: | 何小成;黄三伟 | 申请(专利权)人: | 湖南蚁坊软件股份有限公司 |
主分类号: | G06F16/338 | 分类号: | G06F16/338;G06F16/33 |
代理公司: | 山东博睿律师事务所 37238 | 代理人: | 丁波 |
地址: | 410000 湖南省长沙市高新开发*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 独立 搜索 apachelucene 评分 方法 | ||
本发明公开了一种独立搜索的ApacheLucene评分高亮方法;其特征在于:该方法如下:数据接收,高亮服务接收客户端通过http协议传输过来的搜索语句参数;数据转化,将步骤1接收搜索语句参数转成Apache Lucene的Query对象;数据预处理,初始化Apache Lucene的评分器(QueryScorer)以及初始化高亮器(Highlighter);通过评分器(QueryScorer)对Query对象进行评分和分词,得到Query的词组,对需要做高亮的文本进行分词器分词,得到文本词;数据处理,遍历文本分词后的结果,与通过评分器(QueryScorer)评分后的Query分词结果进行一一匹配;数据输出,通过步骤4的匹配,如果能匹配上,则加上高亮标记,否则返回原始内容。
技术领域
本发明涉及网络搜索技术领域,确切地说是一种独立搜索的ApacheLucene评分高亮方法。
背景技术
在当今基于Apache Lucene实现的搜索引擎如:Apache Solr、ElasticSearch等中,高亮与搜索都是捆绑在一起使用的,因为高亮需要文档的原始内容;但是在亿级数据量的大数据生产环境中,原始内容存储会带来磁盘IO性能瓶颈,以及主备节点数据同步慢的性能问题;
本发明提供了一种方法,将搜索与高亮分开,既搜索服务只索引不存储原始内容;高亮服务单独部署;这样既可以提升搜索性能,也可以提升高亮的性能以及可扩展性。
发明内容
本发明要解决的技术问题是将搜索与高亮分开,既搜索服务只索引不存储原始内容;高亮服务单独部署;这样既可以提升搜索性能,也可以提升高亮的性能以及可扩展性。
为解决上述技术问题,本发明采用如下技术手段:
1.一种独立搜索的ApacheLucene评分高亮方法;其特征在于:该方法包括如下步骤:
步骤1:数据接收,高亮服务接收客户端通过http协议传输过来的搜索语句参数;所述的数据接收之前需要先单独部署一套Apache Solr集群,不存储数据,专门用来做高亮;
步骤2:数据转化,将步骤1接收搜索语句参数转成ApacheLucene的Query对象;所述的数据转化,编写HighlightHandler类,继承ApacheSolr的RequestHandlerBase抽象类以及实现SolrCoreAware、PluginInfoInitialized接口;然后重写handleRequestBody方法,接着调用QParser的getParser方法得到QParser将搜索语句转成ApacheLucene的Query对象;
步骤3:数据预处理,初始化ApacheLucene的评分器QueryScorer以及初始化高亮器Highlighter;通过评分器QueryScorer对Query对象进行评分和分词,得到Query的词组,对需要做高亮的文本进行分词器分词,得到文本词;
步骤4:数据处理,遍历文本分词后的结果,与通过评分器QueryScorer评分后的Query分词结果进行一一匹配;
步骤5:数据输出,通过步骤4的匹配,如果能匹配上,则加上高亮标记,否则返回原始内容。
作为优选,本发明更进一步的技术方案是:
所述的数据预处理,通过构造函数新建QueryScorer,输入Query参数,通过构造函数新建Highlighter,输入QueryScorer。
所述的数据输出,调用Highlighter的getBestFragment方法输入分词器以及需要高亮的文本,得到高亮后的文本。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于湖南蚁坊软件股份有限公司,未经湖南蚁坊软件股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710117547.3/2.html,转载请声明来源钻瓜专利网。