袁鑫攀 彭成 盛鑫海
摘要:隨著現(xiàn)代化教育的快速發(fā)展,多媒體課件的數(shù)量出現(xiàn)爆炸式增長(zhǎng)。海量課件帶來(lái)檢索低效、準(zhǔn)確率低等問(wèn)題。論文設(shè)計(jì)基于Solr的多媒體教學(xué)課件的云檢索系統(tǒng),實(shí)現(xiàn)了課件的高效靈活的緩存功能、在線(xiàn)檢索、查重和管理功能、高亮顯示結(jié)果功能,并且通過(guò)索引復(fù)制來(lái)提高可用性。
關(guān)鍵詞: 課件檢索,Solr,課件去重
1 引 言
隨著現(xiàn)代化教育的快速發(fā)展,盡管高校有一定程度的課件管理系統(tǒng),海量課件檢索效率和精度都不足。Solr[1]是一個(gè)獨(dú)立的基于Lucene[2]搜索應(yīng)用服務(wù)器,它對(duì)外提供類(lèi)似于Web-service的API接口。用戶(hù)可以通過(guò)http請(qǐng)求,向搜索引擎服務(wù)器提交一定格式的XML文件,生成索引;也可以通過(guò)Http Get操作提出查找請(qǐng)求,并得到XML格式的返回結(jié)果。
2 系統(tǒng)結(jié)構(gòu)
2.1 功能結(jié)構(gòu)
基于Solr的課件云檢索系統(tǒng)的功能結(jié)構(gòu)分為5個(gè)部分。1)在線(xiàn)檢索:對(duì)各類(lèi)課件進(jìn)行不層次需求的檢索功能;2)在線(xiàn)查新:檢測(cè)課件的重復(fù)情況;3)分類(lèi)瀏覽:瀏覽各種類(lèi)別的課件;4)高亮顯示:高亮顯示檢索的結(jié)果;5)對(duì)比查看:對(duì)比課件的相似性證據(jù)。
2.2 軟件結(jié)構(gòu)
系統(tǒng)軟件結(jié)構(gòu)如圖1所示。1)數(shù)據(jù)層:提供數(shù)據(jù)源,包括數(shù)據(jù)庫(kù)和索引文件。2)核心業(yè)務(wù)層主要是依賴(lài)Solr框架,利用分析器對(duì)文檔切分,建立分布式倒排索引;并且能夠提供關(guān)鍵詞檢索服務(wù)。3) 用戶(hù)應(yīng)用層實(shí)現(xiàn)用戶(hù)與系統(tǒng)交互。
3 系統(tǒng)實(shí)現(xiàn)
3.1索引文件的創(chuàng)建和更新
1)配置參數(shù):a)配置索引性能參數(shù),修改 solrconfig.xml文件;b)配置索引結(jié)構(gòu)參數(shù),修改Schema.xml(/opt/solr/conf/schema.xml) 文件,定義fieldType、 fields、copyField等索引的主體字段。c)更改schema.xml (/opt/solr/conf/schema.xml) 文件,使分詞器起到作用。d)配置mysql數(shù)據(jù)庫(kù),導(dǎo)入連接mysql的jar包mysql-connector-java-5.1.7-bin.jar,放在tomcat的lib目錄下。
2)使用Solrj操作Solr
1、對(duì)向Solr提交索引進(jìn)行一定的封裝以方便業(yè)務(wù)系統(tǒng)進(jìn)行操作。
2、對(duì)搜索進(jìn)行封裝,以方便結(jié)果的展現(xiàn)分析等等。
Solrj是使用java編寫(xiě)的一個(gè)操作Solr的工具,方便于進(jìn)行索引的更新、搜索結(jié)果的獲取等等。在Solr的發(fā)布包里面有Solrj的相關(guān)jar包。Solrj需要的jar包為:apache-solr-solrj-4.0.0.jar和他的依賴(lài)包solr/dist/solrj-lib。
3)課件特征提取
特征提取是將課件中的所有文本分割成為短語(yǔ),然后抽取出shingles特征。通過(guò)正向最大匹配分詞算法將長(zhǎng)句進(jìn)行科學(xué)劃分,過(guò)濾掉高頻低義的虛詞、助詞,然后再抽取出shingles特征傳給solr接口,建立索引。
3.2 在線(xiàn)云檢索
通過(guò)http服務(wù)發(fā)出課件的關(guān)鍵詞查詢(xún)請(qǐng)求,代碼如下:
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);
其中關(guān)鍵在于,搜索請(qǐng)求需對(duì)solrcore服務(wù)器進(jìn)行定位,再通過(guò)solrcore轉(zhuǎn)發(fā)到其他的從節(jié)點(diǎn)服務(wù)器。
3.3 課件去重和課件對(duì)比
(1)課件去重
檢測(cè)重復(fù)的課件主要是為了提高資源利用率,提高用戶(hù)的使用體驗(yàn)。將每個(gè)課件拆分成為粒度句子級(jí)別的元素集合,對(duì)每個(gè)元素檢索的同時(shí),即可獲得按相似率排序顯示的課件列表。
(2)對(duì)比查看
記錄查重中重復(fù)的證據(jù)并高亮顯示,點(diǎn)擊界面左邊的課件中紅色的高亮證據(jù),會(huì)將界面右邊的相同句子或者短語(yǔ)著藍(lán)色,能夠醒目的顯示兩課件重復(fù)之處。
4.結(jié)束語(yǔ)
在過(guò)去的幾十年里,在線(xiàn)多媒體學(xué)術(shù)課件的應(yīng)用取得了巨大增加,這些教育資源潛在地改變著人們的學(xué)習(xí)方式,隨著文本檢索技術(shù)日益成熟, 論文設(shè)計(jì)了一種有效地從多媒體課件中找到感興趣的資源的solr云檢索方法,得到了系統(tǒng)的實(shí)證。
參考文獻(xiàn)
[1] 王小森.基于Solr的搜索引擎的設(shè)計(jì)與實(shí)現(xiàn)[D].北京:北京郵電大學(xué),2011.
[2] 林碧英,趙銳,陳良臣.基于Lucene的全文檢索引擎研究與應(yīng)用[J].計(jì)算機(jī)技術(shù)與發(fā)展,2007,17(5):184-186endprint