袁鑫攀 彭成 盛鑫海
摘要:随着现代化教育的快速发展,多媒体课件的数量出现爆炸式增长。海量课件带来检索低效、准确率低等问题。论文设计基于Solr的多媒体教学课件的云检索系统,实现了课件的高效灵活的缓存功能、在线检索、查重和管理功能、高亮显示结果功能,并且通过索引复制来提高可用性。
关键词: 课件检索,Solr,课件去重
1 引 言
随着现代化教育的快速发展,尽管高校有一定程度的课件管理系统,海量课件检索效率和精度都不足。Solr[1]是一个独立的基于Lucene[2]搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。
2 系统结构
2.1 功能结构
基于Solr的课件云检索系统的功能结构分为5个部分。1)在线检索:对各类课件进行不层次需求的检索功能;2)在线查新:检测课件的重复情况;3)分类浏览:浏览各种类别的课件;4)高亮显示:高亮显示检索的结果;5)对比查看:对比课件的相似性证据。
2.2 软件结构
系统软件结构如图1所示。1)数据层:提供数据源,包括数据库和索引文件。2)核心业务层主要是依赖Solr框架,利用分析器对文档切分,建立分布式倒排索引;并且能够提供关键词检索服务。3) 用户应用层实现用户与系统交互。
3 系统实现
3.1索引文件的创建和更新
1)配置参数:a)配置索引性能参数,修改 solrconfig.xml文件;b)配置索引结构参数,修改Schema.xml(/opt/solr/conf/schema.xml) 文件,定义fieldType、 fields、copyField等索引的主体字段。c)更改schema.xml (/opt/solr/conf/schema.xml) 文件,使分词器起到作用。d)配置mysql数据库,导入连接mysql的jar包mysql-connector-java-5.1.7-bin.jar,放在tomcat的lib目录下。
2)使用Solrj操作Solr
1、对向Solr提交索引进行一定的封装以方便业务系统进行操作。
2、对搜索进行封装,以方便结果的展现分析等等。
Solrj是使用java编写的一个操作Solr的工具,方便于进行索引的更新、搜索结果的获取等等。在Solr的发布包里面有Solrj的相关jar包。Solrj需要的jar包为:apache-solr-solrj-4.0.0.jar和他的依赖包solr/dist/solrj-lib。
3)课件特征提取
特征提取是将课件中的所有文本分割成为短语,然后抽取出shingles特征。通过正向最大匹配分词算法将长句进行科学划分,过滤掉高频低义的虚词、助词,然后再抽取出shingles特征传给solr接口,建立索引。
3.2 在线云检索
通过http服务发出课件的关键词查询请求,代码如下:
1.SolrServer ss = new CommonsHttpSolrServer( "http://localhost:8080/solr1/collection1/");
2.SolrQuery qu = new SolrQuery("*:*");
3.qu.add(ShardParams.SHARDS,"localhost:8080/solr2/collection1/,localhost:8080/solr1/collection1/");
4.QueryResponse resp = ss.query(qu);
5.System.out.println(resp);
其中关键在于,搜索请求需对solrcore服务器进行定位,再通过solrcore转发到其他的从节点服务器。
3.3 课件去重和课件对比
(1)课件去重
检测重复的课件主要是为了提高资源利用率,提高用户的使用体验。将每个课件拆分成为粒度句子级别的元素集合,对每个元素检索的同时,即可获得按相似率排序显示的课件列表。
(2)对比查看
记录查重中重复的证据并高亮显示,点击界面左边的课件中红色的高亮证据,会将界面右边的相同句子或者短语着蓝色,能够醒目的显示两课件重复之处。
4.结束语
在过去的几十年里,在线多媒体学术课件的应用取得了巨大增加,这些教育资源潜在地改变着人们的学习方式,随着文本检索技术日益成熟, 论文设计了一种有效地从多媒体课件中找到感兴趣的资源的solr云检索方法,得到了系统的实证。
参考文献
[1] 王小森.基于Solr的搜索引擎的设计与实现[D].北京:北京邮电大学,2011.
[2] 林碧英,赵锐,陈良臣.基于Lucene的全文检索引擎研究与应用[J].计算机技术与发展,2007,17(5):184-186endprint