基于Lucene的图书垂直搜索引擎探析

时间:2022-10-30 09:10:54

基于Lucene的图书垂直搜索引擎探析

[摘 要] 本文通过对图书垂直搜索引擎的结构,以及其检索模块的基于Lucene的图书排名算法的分析,介绍了图书垂直搜索引擎在设计过程中所要实现的功能模块。

[关键词] 垂直搜索引擎 图书 Lucene

随着信息的多元化发展和互联网信息的急剧增长,互联网上的图书信息也在急剧增加,在这种现状下,通用的搜索引擎已经不能快速、全方位的帮助用户查找相关信息资料,而图书垂直搜索引擎的出现适时的帮助用户解决了这一难题。这是由于与通用的搜索引擎相比,图书垂直搜索引擎的搜索结果更实用、更准确和更精确。比如某用户想要找某一主题的图书,通常情况下需要通过搜索引擎搜索到许多个图书类站点,然后到每一个网站上去寻找需求的图书,而图书垂直搜索引擎则能够按照该图书的主题,把符合该主题的图书一次性全部搜索出来,显示在检索界面中以供用户选择,这样可以为用户节省大量的时间,而且检索到的图书信息更加全面,方便了用户的需求。

1.垂直搜索引擎概述

垂直搜索引擎是一种具有行业色彩的搜索引擎,是通用搜索引擎的细分和延伸,是对网页库中的某类专门的信息进行一次整合,定向分字段抽取出需要的数据进行处理后再以某种形式返回给用户。垂直搜索是相对通用搜索引擎的信息量大、查询不准确、深度不够等提出来的新的搜索引擎服务模式,通过针对某一特定领域、某一特定人群或某一特定需求提供的有一定价值的信息和相关服务,如图书垂直搜索引擎、汽车垂直搜索引擎、房产垂直搜索引擎等。垂直搜索引擎具有“专、精、深”的特点,相比较通用搜索引擎的海量信息无序化,垂直搜索引擎则显得更加专注、具体和深入。

垂直搜索引擎主要由三部分组成:抓取模块、索引库模块和检索模块,如图(1)所示。

图(1)垂直搜索引擎组成结构

2.图书垂直搜索引擎结构分析

图书垂直搜索引擎结构上也主要分三个部分,实现图书信息采集的抓取系统,建立图书信息索引的索引库系统,以及直接面向用户的检索系统,其结构如图(2)所示。

图(2)图书垂直搜索引擎结构图

(1)图书信息的采集

在图书信息的采集过程中,首先要对图书信息采集条件进行相关设置,然后利用网络爬虫工具通过URL来采集网页图书信息,抽取网页的图书内容并将这些图书网页信息存储在图书信息数据库,接着找到原始网页中的其它链接地址,通过这些链接地址寻找下一个图书网页,就这样循环,直到将相关网站所有的图书网页都抓取完为止。

(2)建立图书信息索引库

建立图书信息索引库,主要是针对网页采集到的图书信息进行分析,利用分词处理技术对图书文本进行处理,可根据图书的主题、出版社、丛书名、作者等(用户可以按照这几种分类信息来检索图书),以及之前将该图书信息存储到图书信息数据库时的ID,按照相应的规则存入图书信息索引库中,来为索引系统服务。而在Lucene中,图书信息索引的建立可以直接由Lucene提供的索引引擎实现。

(3)图书信息检索

在图书垂直搜索引擎的用户接口处,用户在通过关键字(如图书的主题、出版社、丛书名、作者等)检索图书信息时,检索系统会先在图书信息索引库中进行快速检索,得到和关键字相关的图书信息,并进一步得到这些图书在图书信息数据库中的ID,再在图书信息数据库中查找与这些ID对应的图书信息记录,最后将完整的图书信息返回给用户,这样就完成了一次检索,这一检索过程可直接由Lucene提供的查询引擎实现。

3.检索系统中基于Lucene的图书排名算法分析

在图书垂直搜索引擎实际检索过程中,有时根据用户关键词的局限性和不完整性所检索到的图书信息会有很多页面,在这种情况下,怎样在用户检索接口处显示用户最希望得到的图书信息就需要对检索系统中的检索算法进行分析,这里通过对Lucene基础检索算法的分析,来探究图书垂直搜索引擎检索系统中图书信息排名的算法。

Lucene是Apache软件基金会4 Jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎。Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。Lucene基础检索排序算法描述如下:

Score(d)=tf(t in d)*idf(t)*t.getBoost()*norm(t,d)

其中:

(1) tf(t in d)表示词条频率,即检索词条t在文档d中出现的次数。

(2) idf(t)表示词条t在文档d中的倒排词频。

(3) t.getBoost(),该值是搜索时的一个权重因子。

(4) norm(t,d)是标准化因子,包括三个参数:Document boost、Field boost、lengthNorm(field)。一个检索词在一个长度为L和长度为10L的文档中各出现一次,那么长度为L的文档得分高于10L的文档。

在Lucene检索过程中,主要流程是先找到与关键字匹配的图书文档集合,然后给该图书文档集合中的每一个记录计算检索相似度,得到每个图书记录的Score(d),最后进行该文档集中图书记录的排序,在用户接口处呈现给用户。根据Lucene基础检索算法,通过图书的主题、作者、出版社、丛书名等关键字检索到的图书信息是按照该图书记录的Score(d)高低排序的,但如果出现多个图书记录Score(d)近似的情况,Lucene输出的图书排名很难满足用户的需求,这种情况下,就需要一种改进的Lucene检索算法来实现用户的需要,具体描述如下:

Score(d)=k1*LuceneScore(d)+k2*PageRankScore(d)(k1、k2之和为1)

其中LuceneScore(d)是根据Lucene基础检索算法得到的图书记录d的得分,PageRankScore(d)是采集图书信息记录d时,其所对应的原始网页的PageRank得分。这样在检索过程中加入网页的PageRank因素,可以使Lucene检索的具有近似Score(d)的图书记录排序有了差异,能更好的满足用户的需求。

4.结束语

垂直搜索引擎的发展是当今互联网信息膨胀作用下必然出现的结果,而图书垂直搜索引擎作为垂直搜索引擎的一个重要组成部分,其需求也在不断增加,怎样设计和建设良好的图书垂直搜索引擎,方便用户从海量图书信息中筛选出所需求的图书信息,这需要图书垂直搜索引擎实现信息采集的全面性和完整性,以及实现图书信息检索的个性化需求。

参考文献:

[1]李晓红,朱鸿鹏.一种改进的检索算法在垂直搜索引擎中的应用[J].邵阳学院学报(自然科学版).2011(09).

[2] 王琦,张戈,何婧. 基于Lucene与Heritrix的图书垂直搜索引擎的研究与实现[J]. 计算机时代. 2010(02).

[3]付强.基于Lucene的高校图书处置搜索引擎的研究与实现[J].太原师范学院学报(自然科学版).2011(12).

[4]胡华梁,何进,钟元生.图书垂直搜索引擎的设计[J].计算机与现代化.2007(8).

上一篇:IP网络视频点播系统的方案设计 下一篇:数据访问技术浅析