发明内容
本发明实施例所要解决的技术问题在于,提供一种论坛搜索方法和装置。可在检索结果中反映文章的热度(热度一般是指该文章被关注的程度,比如被浏览的次数,频率,回复数等),由于文章的热度一般体现了文章的价值,因而可以实现将更有价值的文章更靠前的显示在检索结果中。
为了解决上述技术问题,本发明实施例提供了一种论坛搜索方法,包括:
获取用于搜索论坛中的文章的关键字,根据所述关键字生成未排序的搜索结果;
根据所述未排序的搜索结果,判断所述未排序的搜索结果中的文章的热度信息;
根据所述热度信息对所述未排序的搜索结果进行排序,并将排序后的搜索结果发送到客户端。
其中,所述判断所述未排序的搜索结果中的文章的热度信息包括:分析文章页面,获得所述文章的热度信息,所述热度信息包括回复数和/或浏览数。
所述根据所述热度信息对所述未排序的搜索结果进行排序包括:根据文章的热度信息和文章页面的原始搜索结果信息计算文章页面得分,根据所述文章页面得分对未排序的搜索结果中的文章进行排序,其中,所述文章页面的原始搜索结果信息包括所述文章页面根据所述关键字检索时的相关度信息。
其中,所述根据文章的热度信息和文章页面的原始搜索结果信息计算文章页面得分包括,根据以下公式计算文章页面得分:
页面得分=log(a+回复数*b+浏览数)*页面原始得分
其中,页面原始得分为预定义的页面得分,a为常数,b为平衡回复数和浏览数数量级差异的常数。
相应的,本发明实施例还提供了一种论坛搜索装置,包括:
搜索模块,用于获取用于搜索论坛中的文章的关键字,根据所述关键字生成未排序的搜索结果;
热度获取模块,用于根据所述未排序的搜索结果,判断所述未排序的搜索结果中的文章的热度信息;
排序显示模块,用于根据所述热度信息对所述未排序的搜索结果进行排序,并将排序后的搜索结果发送到客户端。
其中,所述装置还可包括:
页面分析模块,用于分析文章页面,获得所述文章的热度信息,所述热度信息包括回复数和/或浏览数;
热度数据库,用于存储所述文章的热度信息;
所述热度获取模块,用于向所述热度数据库获取所述未排序的搜索结果中的文章的热度信息。
所述排序显示模块还用于根据文章的热度信息和文章页面的原始搜索结果信息计算文章页面得分,根据所述文章页面得分对未排序的搜索结果中的文章进行排序,其中,所述文章页面的原始搜索结果信息包括所述文章页面根据所述关键字检索时的相关度信息。
进一步的,所述排序显示模块还用于根据以下公式计算文章页面得分:
页面得分=log(a+回复数*b+浏览数)*页面原始得分
其中,页面原始得分为预定义的页面得分,a为常数,b为平衡回复数和浏览数数量级差异的常数。
在本发明实施例中,基于“热度”对搜索的信息进行排序显示,由于该热度也反映了论坛中的其他用户对文章的关注度,有利于将更受关注,也即有可能是更有价值的文章在搜索结果中显示出来。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在很多互联网论坛中有很多发布的文章(或称帖子),有很高的热度(热度一般是指该文章被关注的程度,比如被浏览的次数,频率,回复数等,如果一篇文章的回复数和浏览数都非常高,那么说明这篇文章有很多用户阅读和参与讨论,即称为文章热度高,通常来说这样的文章的价值也更大),曾经很多用户参与过讨论,这些文章通常会具有较高的但价值。但是,现有的论坛搜索技术中,通常根据与搜索关键词的相关度和文章发表时间进行排序,那么随着时间的流逝,一些热度曾经很高的有价值文章反而不能在搜索结果中靠前显示出来,用户反而会看不到这些价值高的文章,而这些文章常常时能够符合用户的搜索目的。
比如,用户在论坛上检索某一型号手机的使用技巧、应用程序、好评度的讨论等,但是该型号手机可能已经发布了有一段时间了,在当前时间段内关于该手机的文章反而不如该手机刚发布时的文章有价值,那么用户现在检索时,按照现有技术显示的检索结果可能多是近期的无价值的文章,用户要向后翻很多页才能找到早期哪些有价值的文章。而采用本发明实施例中的技术,结合热度信息显示搜索结果,有利于用户尽快的找到有用的文章。
还比如,用户在论坛中检索时关键字并不一定非常准确,如果仅按照关键字相关度和时间来显示结果,可能不一定能达到用户的检索目的。但是通常论坛中热度高的文章内容更丰富、参与讨论得用户多,在相关度不那么高的情况下更有可能符合用户的检索目的。那么,采用本发明实施例中的结合热度信息显示搜索结果的技术方案更能向用户显示其想要浏览的文章。
如图1所示,为本发明实施例中论坛搜索方法,该方法包括如下步骤。
步骤101、获取用于搜索论坛中的文章的关键字,根据所述关键字生成未排序的搜索结果。
步骤102、根据搜索结果,判断所述未排序的搜索结果中的文章的热度信息。在本步骤中可通过先已存在的数据库中获取热度信息的方法。如,先获得论坛中的文章的热度信息,并据此在服务器端建立热度数据库,然后在搜索中根据前一步的检索到的文章去数据库中获取文章的热度信息;也可以是按照与建立热度数据库中的热度信息类似的方式,直接获取检索结果中的文章的热度信息。
而上述两种方式下的具体获取热度信息的方法可包括:分析文章页面,获得所述文章的热度信息,所述热度信息包括回复数和/或浏览数。当然,在分析文章页面之前可先下载该页面再进行分析,也可以是在线分析页面。
其中,回复数一般指的是,某用户发表的一篇文章,有多少用户对这篇文章发表自己的想法,即回复该文章。浏览数指的是,某用户发表的一篇文章,有多少用户点击阅读了其中的内容。在大部分的BBS中,每篇文章都有显示文章对应的“回复数和浏览数”,如图2所示,为论坛的文章列表界面,最右边的“回复”、“点击”下方的数字反映了对应文章的回复数和浏览数。
步骤103、根据所述热度信息对所述未排序的搜索结果进行排序,并将排序后的搜索结果发送到客户端。
上述的排序可以是,根据文章的热度信息和文章页面的原始搜索结果信息计算文章页面得分,根据所述文章页面得分对未排序的搜索结果中的文章进行排序,其中,所述文章页面的原始搜索结果信息包括所述文章页面根据所述关键字检索时的相关度信息。
在本发明的具体实施例中,可以根据以下公式计算文章页面得分:
页面得分=log(a+回复数*b+浏览数)*页面原始得分
其中,页面原始得分为预定义的页面得分,a为常数,b为平衡回复数和浏览数数量级差异的常数。比如,可取a=1,b=100。
也可以根据其他计算方法得出文章页面的得分。
在本发明实施例中,基于“热度”对搜索的信息进行排序显示,由于该热度也反映了论坛中的其他用户对文章的关注度,有利于将更受关注,也即有可能是包含更多有效信息的文章在搜索结果中显示出来。
相应的,本发明实施例还提供了一种论坛搜索装置,如图3所示,该装置可包括:
搜索模块31,用于获取用于搜索论坛中的文章的关键字,根据所述关键字生成未排序的搜索结果;
热度获取模块33,用于根据所述未排序的搜索结果,判断所述未排序的搜索结果中的文章的热度信息;
排序显示模块35,用于根据所述热度信息对所述未排序的搜索结果进行排序,并将排序后的搜索结果发送至客户端。
进一步的,若先建立热度数据库,则此时如图4所示,上述装置还可包括:页面分析模块32,用于分析文章页面,获得所述文章的热度信息,所述热度信息包括回复数和/或浏览数;热度数据库34,用于存储所述文章的热度信息。所述热度获取模块33,用于向所述热度数据库34获取所述未排序的搜索结果中的文章的热度信息。
其中,所述排序显示模块35还可用于根据文章的热度信息和文章页面的原始搜索结果信息计算文章页面得分,根据所述文章页面得分对未排序的搜索结果中的文章进行排序,其中,所述文章页面的原始搜索结果信息包括所述文章页面根据所述关键字检索时的相关度信息。进一步的,所述排序显示模块35还用于根据以下公式计算文章页面得分:页面得分=log(a+回复数*b+浏览数)*页面原始得分;其中,页面原始得分为预定义的页面得分,a为常数,b为平衡回复数和浏览数数量级差异的常数。
为进一步的说明本发明实施例中的论坛搜索装置,以下将其分为两个部分进行描述,在下述说明中,可称第(1)部分为热度数据库建立部分,称第(2)部分为前台检索排序部分。
(1)分析文章页面,得到回复数和浏览数,建立“热度”数据库。
如图5所示,为本发明实施例中的一种建立数据库的各功能模块关系的示意图。如图所示,“爬取程序”通过论坛站点请求下载页面,页面下载完成之后,通过“分析程序”分析这个页面。
从论坛下载回来的页面一般是Html格式,“分析程序”通过分析页面,找到特定的Html标签,就能得到“文章标题”,“回复数”,“浏览数”等信息。然后把这些信息,存入“热度数据库”。在本发明实施例中的“爬取程序”和“分析程序”主要功能是把页面下载下来,并分析得到“热度数据库”。
(2)查询的时候,根据“热度”数据库,计算页面得分,再根据页面得分将查询到的页面排序后显示。
计算页面得分的基本公式是:
页面得分=log(a+回复数*b+浏览数)*页面原始得分
公式中,a是一个常数,因为页面的“回复数”和“浏览数”可能为0,为了保证公式的取值不为0,一般定义a取值为1。
b是一个经验因子。可以根据需要取值。在大部分的论坛中,很多用户往往只是浏览页面,但不回复(回帖)。如果用户“回复”了,可能证明这个帖子更有价值,所以“回复数”的重要性是高于“浏览数”的。在这种情况下,b可以取一个比较大的值,比如b=100。但也需要注意,在某些论坛中,可以采用“自动机器人”的方法,刷新“回复数”的值。这时候,“回复数”变得没意义了,可以取b=1。
“页面原始得分”是一个系统初始设值,可以根据论坛管理员的要求,自行设置,如设置为1。或是根据与关键词的相关度设置为相应数值。
如图6所示,为热度数据库建立部分的组成示意图。下载模块从论坛中下载数据(如文章页面等),再利用 “页面分析模块”将如图2中的热度信息解析出来,然后保存到“热度数据库”中。
如图7所示,为前台检索排序部分的组成示意图。包括3个系统模块:“热度数据库模块”,“倒排数据库模块”,“前台排序模块”。其中数字标号代表上述模块之间执行检索排序时的流程及其顺序,各流程执行内容如下述的描述。
① 用户把查询词提交给“前台查询模块”。
②“前台查询模块”查询“倒排数据库模块”,得到“未排序的结果List”。
如图8所示,为倒排数据库存储的文件信息示意图,每一个“关键字”后面,都保存了包含本“关键字”的所有文档信息。这样,根据用户的“查询词(关键字)”,就能找到包含本“查询词(关键字)”的所有文档(页面)。
③“前台查询模块”查询“热度数据库模块”,得到“页面的热度信息”。
④“前台查询模块”把第2步得到的“未排序的结果List”根据本发明的热度排序方式进行排序,将排序结果显示给用户。
如图9所示,为采用了本发明实施例中的方法进行检索后显示的检索结果。从该图中可以看出,回复浏览数靠前的文章,在检索结果中靠前显示。
在本发明实施例中,基于“热度”对搜索的信息进行排序显示,由于该热度也反映了论坛中的其他用户对文章的关注度,有利于将更受关注,也即有可能是更有价值的文章在搜索结果中显示出来。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。