基于lucene的人才网全文搜索系统设计及应用

时间:2022-10-06 01:16:10

基于lucene的人才网全文搜索系统设计及应用

摘 要 在人才网中,传统的检索系统效率较多,随着人才信息和招聘信息数量的不断上升,这种检索系统难以满足用户的需求。本文基于框架,提出了一种分布式的全文搜索系统,希望能够对提高人才网检索的索引效率和检索速度提供一定的帮助。

【关键词】人才网 全文搜索系统 设计

1 系统设计

1.1系统概念模型

随着现代经济的发展,人才网的规模越来越大,人才网的功能也越来越使用,本文根据用户对人才网的普遍使用需求,设计了如图1所示的系统概念模型。其中,通过html语言实现用户界面;数据库通过对数据的加载和转换操作实现对推荐引擎的数据支持;模型库运行各类数据预测模型,同时以web service提供系统服务。

1.2 系统架构

人才网由于所涉及的各类信息较多,通常采用分布式全文检索系统,主要包括了检索服务、负载均衡服务及web服务3个部分组成。随着求职人数的不断增加,企业所提供的职位也越来越多,在这种条件下,系统需要实现对大量人才信息与企业职位信息资料的全文检索。因此,需要综合考虑在文件服务器及数据库中存储文档,提高系统的扩展性,使硬件的性能得以充分发挥,并实现高速的索引和检索服务。同时,通过将提供的索引及检索功能与.net框架中的remoting技术结合到一起,实现了分布式的信息索引和检索。

系统结构主要包含了分布式索引与检索、负载均衡及web服务三个部分。

(1)分布式索引与检索服务。该部分服务主要是通过多台服务器对数据库及文件服务器中的文档建立索引,最终检索出用户想要搜索的信息。该服务所提供的功能如表1所示。

(2)负载均衡服务。该部分服务主要实现对检索操作的调度,首先需要对系统当前的所有负载信息进行保存,这些信息主要包括当前连接的服务器信息、各个服务器的平均检索速度以及任务耗时等方面的信息;然后将各检索服务器的指标进行对比,系统按照对比结果将检索任务分配给负载最小的检索服务器执行。

(3)web服务器。web服务器的主要功能是提供网上信息浏览服务。在系统中,web服务主要为人才网前端与后台系统提供了对接渠道,将从后台服务器中所提取的信息转换成清晰易懂的图文信息,并将这些信息展示到客户端浏览器中。

1.3 系统流程

(1)索引流程。系统的索引流程主要可以分为三个阶段,首先是预处理阶段,lucene从系统源文件中提取出文本信息,然后将这些文本信息转换成可以进行处理的字符流,创建lucene的索引文档对象以及所对应的索引域对象;其次是分析阶段,调用系统的索引管理器中的adddocument()方法将数据传递给lucene执行索引操作,在对数据进行索引处理的过程中,lucene会调用系统分析器对这些数据进行分析操作,实现对数据的过滤和分词,提高索引的效率;最后是索引写入过程,lucene完成对输入数据的分析后,会将分析结果以倒排索引的形式写入到索引文件中。

(2)检索流程。在建立索引结构滞后,可以通过指定的字段对索引进行检索。检索模块的性能及友好性对全文搜索引擎存在极大的影响,如果检索模块的性能较低,那么,无论系统的功能有多强大,整个系统也没有太大的实际应用意义。

在对索引库信息进行检索的过程中,lucene首先会通过调用indexsearcher()函数来打开索引库,其中的参数指定索引库的具体路径,其次是使用queryparse()函数对查询语句进行转换,将其转换成可供lucene进行查询的对象,最后是执行搜索命令,并将结果返回到hits集合中。

2 核心算法

2.1 同义词识别

在进行信息检索的过程中,通过采用频繁项集技术处理核心职位的名称表述,从而实现对同义词及近义词的识别。

2.2 聚类算法

通过手动设置职位的类别范围,系统通过x-means聚类算法从中找到最佳类别,从而实现对职位类别的聚类。通过聚类操作,可以使系统根据应聘者所选择的职位类别进行智能职位信息推荐。

2.3 特征分类

通过对所收集的各类信息进行整理和分析,然后根据这些数据信息的来源特点,可以将信息特征分为基本特征、提取特征、标签特征和行为特征,这样可以为不同的推荐算法提供依据,有效提高现算法结果的精确度。

3 实验结果分析

本文的全文搜索系统基于框架进

行设计,采用mysql编写后台数据库,操作系统使用microsoft公司的windows server系统。总共架设两台物理服务器。

3.1 数据库数据报告

通过在数据库中的如下字段建立索引目录:

id,job_types_name, work_place_name, job_property_type, trade_name, job_name, app_time, sex_name, age, degree, specialty_name, academy_name, cert, train_msg, work_length.

针对以上字段,只对其中的id进行存储,针对其它字段只进行分析,需要使用时,可以利用id进行调用。

索引结果:

通过在两台服务器上安装10个索引服务,创建用时1h左右;每台服务器处理月500万条数据,用时1853s,索引存储空间消耗约2.01gb.

3.2 搜索结果

通过测试程序对多个关键字段分别进行搜索实验,搜索字段包括job_type_name,specialty_name,trade_name等,然后利用返回信息的id号从数据库中取出相应的数据信息。具体的实验数据如表2所示。

从表2的数据可以看出,采用分布式的全文检索系统,可以使检索速度和检索效率均得到较大程度的提升。

参考文献

[1]苏景春.基于lucene的全文检索系统的设计与应用[d].北京:北京交通大学,2010.

[2]赵河,逯鹏,李永强.基于lucene的搜索引擎设计与实现[j].计算机工程,2011(16):4-7.

[3]陈忱.lucene排序算法的个性化改进[j].科技与企业,2012(2):23-28.

[4]李永春,丁华福.lucene的全文检索的研究与应用[j].计算机技术与发展,2010,20(2):12-15.

[5]彭焕峰.基于lucene的中文分词器的设计与实现[j].微型机与应用,2011,8(18):8-11.

作者单位

福建省厦门市人才服务中心 福建省厦门市 361024

上一篇:阵列波导光栅在WDM系统实时监测中的应用 下一篇:对宿迁市体育生态旅游的研究