首页> 中国专利> 基于Lucence自定义词库的全文检索匹配方法及系统

基于Lucence自定义词库的全文检索匹配方法及系统

摘要

本发明公开了一种基于Lucence自定义词库的全文检索匹配方法及系统,涉及大数据搜索领域。该方法包括以下步骤:在Lucence搜索环境中,实时获取用户输入的搜索词,检测是否搜索到结果,搜索不到,则将搜索词去掉特殊字符,存入Lucence自定义词库;搜索到,则对搜索词进行分词,对分词后的若干词组继续进行搜索,检测是否搜索到结果,搜索不到,则将搜索不到结果的分词后的词组去掉特殊字符,存入Lucence自定义词库;搜索到,则记录搜索的时间、分词后的搜索词、搜索反馈信息,最终建立支持Lucence全文检索的Lucence自定义词库。本发明根据用户输入的搜索词,能够快速有效地建立自己专用的Lucence自定义词库。

著录项

  • 公开/公告号CN106021430A

    专利类型发明专利

  • 公开/公告日2016-10-12

    原文格式PDF

  • 申请/专利权人 武汉斗鱼网络科技有限公司;

    申请/专利号CN201610321306.6

  • 发明设计人 白凡;

    申请日2016-05-16

  • 分类号G06F17/30;

  • 代理机构武汉智权专利代理事务所(特殊普通合伙);

  • 代理人沈林华

  • 地址 430000 湖北省武汉市东湖开发区软件园东路1号软件产业4.1期B1栋11楼

  • 入库时间 2023-06-19 00:39:52

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-01-19

    授权

    授权

  • 2016-11-09

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

    实质审查的生效

  • 2016-10-12

    公开

    公开

说明书

技术领域

本发明涉及大数据搜索领域,具体是涉及一种基于Lucence自定义词库的全文检索匹配方法及系统。

背景技术

Apache Lucence是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎。

为了便于读者理解,下面先对相关术语进行简单说明:

Apache Lucence:Apache旗下一款开源全文检索项目;

全文检索:不同于传统的模糊匹配,先对搜索词按一定规则分词后,再将分词与源数据进行匹配,根据出现分词次数,分词邻近距离,权重等数据进行打分,获得检索结果;

分词:全文检索索引,例如:我是中国人,其分词可为:我、是、中国、人、中国人等;

公共词库:存放公共分词规则的词库,例如,常用的:你好、中国等;

自定义词库:根据自己需求,用于存放自己需要的分词规则的字典词库;

搜索反馈:搜索效果反馈,即用户输入搜索词进入搜索页面后,是否有点击页面链接亦或在多次翻页之后点击链接;

搜索量:某一搜索词某时段全站搜索量;

字段:需要搜索的字段,例如:游戏名、主播名、房间名等。

在Apache Lucence全文检索中,需要对源数据进行分词索引。若没有针对特定词组进行分词处理,则该词组无法被检索到。例如,针对游戏直播领域的搜索,“英雄联盟”、“Dota2”、“炉石传说”等在公共词库中基本不会出现的词汇,将很难被检索到。因此,如何获取用户最需要检索的词汇,并生成自定义词库是在全文检索领域一个重要的难点。

发明内容

本发明的目的是为了克服上述背景技术的不足,提供一种基于Lucence自定义词库的全文检索匹配方法及系统,根据用户输入的搜索词,能够快速有效地建立自己专用的Lucence自定义词库。

本发明提供一种基于Lucence自定义词库的全文检索匹配方法,包括以下步骤:

在基于Lucence全文检索引擎的搜索环境中,实时获取用户输入的搜索词,检测是否搜索到结果,如果搜索不到结果,则将搜索不到结果的搜索词去掉特殊字符,存入Lucence自定义词库;如果搜索到结果,则对搜索到结果的搜索词进行分词处理,得到分词后的若干词组;对分词后的若干词组继续进行搜索,检测是否搜索到结果,如果搜索不到结果,则将搜索不到结果的分词后的词组去掉特殊字符,存入Lucence自定义词库;如果搜索到结果,则记录搜索的时间、分词后的搜索词、搜索反馈信息,最终建立支持Lucence全文检索的Lucence自定义词库。

在上述技术方案的基础上,所述建立支持Lucence全文检索的Lucence自定义词库之后,还包括以下步骤:在建立支持Lucence全文检索的Lucence自定义词库的基础上,根据字段的搜索量、搜索反 馈信息及自定义权重变量线性叠加,按照字段权重动态分配公式定时计算字段权重值,再通过Lucence全文检索引擎的权重设置接口,将计算得到的字段权重值动态赋值给字段。

在上述技术方案的基础上,所述字段权重动态分配公式为:

boost=(α*n+β*m+δ*In(t)+r)*ρ,

其中,boost为某字段权重值,n为某时段该字段被检索量,m为某时段该字段被检索后具有完整搜索反馈的总量,t为某时段该字段被检索后不完整搜索反馈的总量,r为自定义权重变量,α为检索量的系数因子,β为完整搜索反馈的系数因子,δ为不完整搜索反馈的系数因子,ρ为全局协调系数因子。

在上述技术方案的基础上,所述自定义权重变量为主播名、主播房间名或房间类型。

在上述技术方案的基础上,当系统出现转型或用户搜索喜好发生变化之后,所述自定义权重变量随之改变。

本发明还提供一种基于Lucence自定义词库的全文检索匹配系统,该系统包括Lucence自定义词库建立单元,所述Lucence自定义词库建立单元用于建立支持Lucence全文检索的Lucence自定义词库:在基于Lucence全文检索引擎的搜索环境中,实时获取用户输入的搜索词,检测是否搜索到结果,如果搜索不到结果,则将搜索不到结果的搜索词去掉特殊字符,存入Lucence自定义词库;如果搜索到结果,则对搜索到结果的搜索词进行分词处理,得到分词后的若干词组;对分词后的若干词组继续进行搜索,检测是否搜索到结果,如果搜索不到结果,则将搜索不到结果的分词后的词组去掉特殊字符,存入Lucence自定义词库;如果搜索到结果,则记录搜索的时间、分词后的搜索词、搜索反馈信息。

在上述技术方案的基础上,该系统还包括字段权重动态分配单元,所述字段权重动态分配单元用于动态分配字段权重:在Lucence自定义词库的基础上,根据字段的搜索量、搜索反馈信息及自定义权重变量线性叠加,按照字段权重动态分配公式定时计算字段权重值,再通过Lucence全文检索引擎的权重设置接口,将计算得到的字段权重值动态赋值给字段。

在上述技术方案的基础上,所述字段权重动态分配公式为:

boost=(α*n+β*m+δ*In(t)+r)*ρ,

其中,boost为某字段权重值,n为某时段该字段被检索量,m为某时段该字段被检索后具有完整搜索反馈的总量,t为某时段该字段被检索后不完整搜索反馈的总量,r为自定义权重变量,例如:主播名、主播房间名、房间类型;α为检索量的系数因子,β为完整搜索反馈的系数因子,δ为不完整搜索反馈的系数因子,ρ为全局协调系数因子。

在上述技术方案的基础上,所述自定义权重变量为主播名、主播房间名或房间类型。

在上述技术方案的基础上,当系统出现转型或用户搜索喜好发生变化之后,所述自定义权重变量随之改变。

与现有技术相比,本发明的优点如下:

(1)本发明在基于Lucence全文检索引擎的搜索环境中,建立用于进行Lucence全文检索的Lucence自定义词库,实时获取用户输入的搜索词,检测是否搜索到结果,如果搜索不到结果,则将搜索不到结果的搜索词去掉特殊字符,存入Lucence自定义词库;如果搜索到结果,则对搜索到结果的搜索词进行分词处理,得到分词后的若干词组;对分词后的若干词组继续进行检索,检测是否搜索到结果,如 果搜索不到结果,则将搜索不到结果的分词后的词组去掉特殊字符,存入Lucence自定义词库;如果搜索到结果,则记录搜索的时间、分词后的搜索词、搜索反馈信息。本发明根据用户输入的搜索词,能够快速有效地建立自己专用的Lucence自定义词库,形成符合当前搜索环境的Lucence自定义词库,用于Lucence全文检索,可达到更佳的搜索效果。例如,对于游戏直播,可能用户更期望搜索关于“YYF”、“55开”、“安德罗妮”等信息,采用常规词库可能无法满足这类需求。采用本发明实施例的方法,在首次搜索时,可能也不会得到最优结果,但是,随着Lucence自定义词库不断迭代更新,搜索结果会随着用户的搜索量上涨逐渐优化。

(2)本发明在Lucence自定义词库的基础上,动态分配字段权重:根据字段的搜索量、搜索反馈信息及自定义权重变量线性叠加,按照字段权重动态分配公式定时计算字段权重值,再通过Lucence全文检索引擎的权重设置接口(setboost),将计算得到的字段权重值动态赋值给字段,能够稳定有效地动态分配各字段权重。当系统出现转型或用户搜索喜好发生变化之后,自定义权重变量随之改变。例如,搜索系统有以下几个字段:主播名、主播房间名、房间类型。系统一开始需要搜索对主播名的搜索更侧重,则只需要增大自定义权重,即字段权重动态分配公式中的自定义权重变量。

附图说明

图1是本发明实施例中基于Lucence自定义词库的全文检索匹配方法的流程图。

具体实施方式

下面结合附图及具体实施例对本发明作进一步的详细描述。

参见图1所示,本发明实施例提供一种基于Lucence自定义词库的全文检索匹配方法,包括以下步骤:

S1、建立支持Lucence全文检索的Lucence自定义词库:在基于Lucence全文检索引擎的搜索环境中,实时获取用户输入的搜索词,检测是否搜索到结果,如果搜索不到结果,则将搜索不到结果的搜索词去掉特殊字符,存入Lucence自定义词库;如果搜索到结果,则对搜索到结果的搜索词进行分词处理,得到分词后的若干词组;对分词后的若干词组继续进行搜索,检测是否搜索到结果,如果搜索不到结果,则将搜索不到结果的分词后的词组去掉特殊字符,存入Lucence自定义词库;如果搜索到结果,则记录搜索的时间、分词后的搜索词、搜索反馈信息,最终建立支持Lucence全文检索的Lucence自定义词库;

S2、动态分配字段权重:在建立支持Lucence全文检索的Lucence自定义词库的基础上,根据字段的搜索量、搜索反馈信息及自定义权重变量线性叠加,按照字段权重动态分配公式定时计算字段权重值,再通过Lucence全文检索引擎的权重设置接口(setboost),将计算得到的字段权重值动态赋值给字段;

字段权重动态分配公式为:

boost=(α*n+β*m+δ*In(t)+r)*ρ,

其中,boost为某字段权重值,n为某时段该字段被检索量,m为某时段该字段被检索后具有完整搜索反馈的总量,t为某时段该字段被检索后不完整搜索反馈的总量,r为自定义权重变量,例如:主播名、主播房间名、房间类型;α为检索量的系数因子,β为完整搜索反馈的系数因子,δ为不完整搜索反馈的系数因子,ρ为全局协调系数因子。

自定义权重变量可以为主播名、主播房间名或房间类型,当系统出现转型或用户搜索喜好发生变化之后,自定义权重变量随之改变。

本发明实施例还提供一种基于Lucence自定义词库的全文检索匹配系统,该系统包括Lucence自定义词库建立单元和字段权重动态分配单元,其中:

Lucence自定义词库建立单元用于建立支持Lucence全文检索的Lucence自定义词库:在基于Lucence全文检索引擎的搜索环境中,实时获取用户输入的搜索词,检测是否搜索到结果,如果搜索不到结果,则将搜索不到结果的搜索词去掉特殊字符,存入Lucence自定义词库;如果搜索到结果,则对搜索到结果的搜索词进行分词处理,得到分词后的若干词组;对分词后的若干词组继续进行搜索,检测是否搜索到结果,如果搜索不到结果,则将搜索不到结果的分词后的词组去掉特殊字符,存入Lucence自定义词库;如果搜索到结果,则记录搜索的时间、分词后的搜索词、搜索反馈信息;

字段权重动态分配单元用于动态分配字段权重:在建立支持Lucence全文检索的Lucence自定义词库的基础上,根据字段的搜索量、搜索反馈信息及自定义权重变量线性叠加,按照字段权重动态分配公式定时计算字段权重值,再通过Lucence全文检索引擎的权重设置接口(setboost),将计算得到的字段权重值动态赋值给字段;

字段权重动态分配公式为:

boost=(α*n+β*m+δ*In(t)+r)*ρ,

其中,boost为某字段权重值,n为某时段该字段被检索量,m为某时段该字段被检索后具有完整搜索反馈的总量,t为某时段该字段被检索后不完整搜索反馈的总量,r为自定义权重变量,例如:主播名、主播房间名、房间类型;α为检索量的系数因子,β为完整 搜索反馈的系数因子,δ为不完整搜索反馈的系数因子,ρ为全局协调系数因子。

自定义权重变量可以为主播名、主播房间名或房间类型,当系统出现转型或用户搜索喜好发生变化之后,自定义权重变量随之改变。

本发明实施例根据用户输入条件,能够快速有效地建立自己专用的Lucence自定义词库,并且形成符合当前搜索环境的Lucence自定义词库,用于Lucence全文检索,可达到更佳的搜索效果。

例如,对于游戏直播,可能用户更期望搜索关于“YYF”、“55开”、“安德罗妮”等信息,采用常规词库可能无法满足这类需求。采用本发明实施例的方法,在首次搜索时,可能也不会得到最优结果,但是,随着Lucence自定义词库不断迭代更新,搜索结果会随着用户的搜索量上涨逐渐优化。

此外,在搜索系统中,权重往往被赋予为某一常量,这种设定在某一时期可能会得到良好的搜素结果。然而,随着系统的转型,用户人群口味变更或者源数据的变化等因素,这一设定便将难以获得准确的结果。在多字段检索中,如何根据搜索反馈效果,搜索量等因素动态分配各字段权重以达到最优匹配结果,也是本领域技术人员需要重点考虑的。

例如,搜索系统中的用户一开始只是对某几个主播感兴趣,则他们对主播名的搜索结果更加看重,系统中主播名的搜索量变化加大,搜索反馈效果也会最为良好,权重也会动态偏向这一字段;然而,随着用户对系统的逐渐了解,他们更对房间内容关注更多,则相应的其搜索量便会增大,且反馈效果也更为良好,自然,权重也会偏向到相应的房间名及房间类型。

当系统出现转型或用户搜索喜好发生变化之后,自定义权重变量 随之改变。例如,搜索系统有以下几个字段:主播名、主播房间名、房间类型。系统一开始需要搜索对主播名的搜索更侧重,则只需要增大自定义权重,即字段权重动态分配公式中的自定义权重变量。

本领域的技术人员可以对本发明实施例进行各种修改和变型,倘若这些修改和变型在本发明权利要求及其等同技术的范围之内,则这些修改和变型也在本发明的保护范围之内。

说明书中未详细描述的内容为本领域技术人员公知的现有技术。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号