ield.1ndex.UN_T0KENIZED)、分詞并索引(Field.1ndex.TOKENIZED)。
[0074]5 將 Document 添加到 IndexWriter 里面:
[0075]indexffriter.addDocument(document);
[0076](6)關(guān)閉索引器 IndexWriter:
[0077]indexffriter.close ();
[0078]Lucene數(shù)據(jù)源組織結(jié)構(gòu)如圖3所示。索引存儲(chǔ)模塊42將得到的索引文件存儲(chǔ)在存儲(chǔ)空間中。
[0079]4、搜索及Lucene打分機(jī)制
[0080]查詢搜索單元5包括:搜索索引模塊51,其基于Iucene的query查詢接口,根據(jù)關(guān)鍵詞或語句的分詞結(jié)果生成查詢對(duì)象,對(duì)建立索引單元4內(nèi)的索引文件進(jìn)行搜索,得到相關(guān)的教學(xué)資源;相關(guān)性排序模塊52,其用于對(duì)教學(xué)資源與查詢對(duì)象的相關(guān)程度進(jìn)行打分,按得分排序得到與查詢對(duì)象最相關(guān)的教學(xué)資源。
[0081]搜索索引模塊51中用于Lucene搜索的4個(gè)主要api的類分別為IndexSearcher,Query, QueryParser 和 Hits。
[0082]IndexSearcher是搜索的入口,他的search方法提供了搜索功能。QueryParser是一個(gè)非常通用的幫助類,他的作用是把用戶輸入的文本轉(zhuǎn)換為內(nèi)置的Query對(duì)象。QueryParser的使用如下
[0083]QueryParser.parse(String query, String field, Analyzer analyzer)throwsParseExcept1n,
[0084]其中:query是用戶輸入的內(nèi)容,field是搜索默認(rèn)的field,analyzer是用來將用戶輸入的內(nèi)容也作分析處理(分詞),一般情況下這里的anaylyzer需要和創(chuàng)建索引的時(shí)候采用的analyzer保持一致。
[0085]搜索結(jié)果的處理:Hits對(duì)象,Hits對(duì)象是搜索結(jié)果的集合,主要有下面幾個(gè)方法:
[0086]IengthO,這個(gè)方法記錄有多少條結(jié)果返回(lazy loading)
[0087]doc (η)返回第η個(gè)記錄
[0088]id (η)返回第 η 個(gè)記錄的 Document ID
[0089]score (n)第η個(gè)記錄的相關(guān)度(積分)
[0090]由于搜索的結(jié)果一般比較大,從性能上考慮,Hits對(duì)象并不會(huì)真正把所有的結(jié)果全部取回,默認(rèn)情況下是保留前100個(gè)記錄。
[0091]相關(guān)性排序模塊52具有一套較為完善的打分機(jī)制,該Lucene打分機(jī)制結(jié)合了Boolean model 和 Vector Space Model (VSM)。
[0092]Iucene在查詢時(shí)會(huì)首先基于Boolean Model通過在查詢語句中的boolean邏輯(AND,OR, NOT)來縮小待打分的文檔結(jié)果,此過程涉及倒排表的合并。VSM模型會(huì)對(duì)上述返回的結(jié)果進(jìn)行打分,計(jì)算查詢語句與搜索文檔的相關(guān)性。打分公式如下:
[0093]score (q, d) = coord (q, d) X queryNorm(q) X Σ tinq (tf (tin d) X idf (t) 2X t.getBoost () X norm (t, d))
[0094]該公式各部分的意義如下:
[0095]t:Term,這里的Term是指包含域信息的Term。
[0096]coord(q, d):一次搜索可能包含多個(gè)搜索詞,而一篇文檔中也可能包含多個(gè)搜索詞,此項(xiàng)表示,當(dāng)一篇文檔中包含的搜索詞越多,則此文檔則打分越高。
[0097]queryNorm(q):計(jì)算每個(gè)查詢條目的方差和,此值并不影響排序,而僅僅使得不同的query之間的分?jǐn)?shù)可以比較。
[0098]tf (t in d):Term t在文檔d中出現(xiàn)的詞頻。
[0099]idf(t):Term t在幾篇文檔中出現(xiàn)過。
[0100]boost:激勵(lì)因子,可以通過setBoost方法設(shè)置。
[0101]各類Boost 值:
[0102]t.getBoost O:查詢語句中每個(gè)詞的權(quán)重,可以在查詢中設(shè)定某個(gè)詞更加重要;
[0103]d.getBoost O:文檔權(quán)重,在索引階段寫入nrm文件,表明某些文檔比其他文檔更重要;
[0104]f.getBoost O:域的權(quán)重,在索引階段寫入nrm文件,表明某些域比其他的域更重要。
[0105]norm(t, d):標(biāo)準(zhǔn)化因子,它包括三個(gè)參數(shù):
[0106]Document boost:此值越大,說明此文檔越重要。
[0107]Field boost:此域越大,說明此域越重要。
[0108]IengthNorm(field) = (1.0/Math, sqrt (numTerms)):一個(gè)域中包含的 Term 總數(shù)越多,也即文檔越長,此值越小,文檔越短,此值越大。
[0109]查詢搜索單元5將搜索到的教學(xué)資源結(jié)果列表傳輸給用戶交互單元1,用戶交互單元I通過web頁面的形式顯示。用戶可以點(diǎn)擊相應(yīng)的課件資源進(jìn)行在線查看,或者下載到本地。
[0110]本發(fā)明的保護(hù)內(nèi)容不局限于以上實(shí)施例。在不背離發(fā)明構(gòu)思的精神和范圍下,本領(lǐng)域技術(shù)人員能夠想到的變化和優(yōu)點(diǎn)都被包括在本發(fā)明中,并且以所附的權(quán)利要求書為保護(hù)范圍。
【主權(quán)項(xiàng)】
1.一種教學(xué)資源的全文搜索引擎系統(tǒng),其特征在于,包括: 用戶交互單元(I),其為輸入輸出裝置,用于接收用戶輸入的關(guān)鍵詞或語句,以及顯示或輸出查詢到的教學(xué)資源; 教學(xué)資源庫(2),其用于存儲(chǔ)上傳的教學(xué)資源; 文本處理單元(3),其分別與所述用戶交互單元(I)和所述教學(xué)資源庫(2)通信,用于對(duì)所述教學(xué)資源的文本及所述關(guān)鍵詞或語句進(jìn)行處理,生成分詞結(jié)果; 建立索引單元(4),其與所述文本處理單元(3)通信,利用基于Iucene的建索引引擎,根據(jù)所述教學(xué)資源的分詞結(jié)果建立索引文件,并存儲(chǔ)所述索引文件; 查詢搜索單元(5),其與所述用戶交互單元(I)、所述文本處理單元(3)及所述建立索引單元(4),其用于根據(jù)所述關(guān)鍵詞或語句的分詞結(jié)果生成查詢對(duì)象,對(duì)所述建立索引單元(4)內(nèi)的所述索引文件進(jìn)行搜索,搜索到的與所述查詢對(duì)象最相關(guān)的教學(xué)資源后返回所述用戶交互單元(I)。2.如權(quán)利要求1所述的教學(xué)資源全文搜索引擎系統(tǒng),其特征在于,所述文本處理單元(3)包括: 文本抽取模塊(31),從所述教學(xué)資源中抽取出文本;所述文本來源包括:ppt類型、word類型、pdf類型、txt類型的文檔; 中文詞語處理模塊(32),其為ICTCLAS分詞系統(tǒng)用于對(duì)從所述文本、用戶輸入的所述關(guān)鍵詞或語句進(jìn)行詞語切分、詞性標(biāo)注及詞語過濾,生成分詞結(jié)果。3.如權(quán)利要求1所述的教學(xué)資源全文搜索引擎系統(tǒng),其特征在于,所述建立索引單元(4)包括: 索引創(chuàng)建模塊(41),其用于建立索引器IndexWriter,建立文檔對(duì)象Document,在所述文檔對(duì)象Document中建立字段Field,并將所述文檔對(duì)象Document添加到所述索引器Indexffriter中,得到索引文件; 索引存儲(chǔ)模塊(42),其與所述索引創(chuàng)建模塊(41)通信,用于存儲(chǔ)所述索引文件。4.如權(quán)利要求1所述的教學(xué)資源全文搜索引擎系統(tǒng),其特征在于,所述查詢搜索單元(5)包括: 搜索索引模塊(51),其基于Iucene的query查詢接口,根據(jù)所述關(guān)鍵詞或語句的分詞結(jié)果生成查詢對(duì)象,對(duì)所述建立索引單元(4)內(nèi)的所述索引文件進(jìn)行搜索,得到相關(guān)的教學(xué)資源; 相關(guān)性排序模塊(52),其用于對(duì)所述教學(xué)資源與所述查詢對(duì)象的相關(guān)程度進(jìn)行打分,按得分排序得到與所述查詢對(duì)象最相關(guān)的教學(xué)資源。5.如權(quán)利要求1所述的教學(xué)資源全文搜索引擎系統(tǒng),其特征在于,所述用戶交互單元(I)為web網(wǎng)站。
【專利摘要】本發(fā)明公開了一種教學(xué)資源的全文搜索引擎系統(tǒng),包括:用戶交互單元,其為輸入輸出裝置,用于接收用戶輸入的關(guān)鍵詞或語句,以及顯示或輸出查詢到的教學(xué)資源;教學(xué)資源庫,其用于存儲(chǔ)上傳的教學(xué)資源;文本處理單元,用于對(duì)教學(xué)資源的文本及關(guān)鍵詞或語句進(jìn)行處理,生成分詞結(jié)果;建立索引單元,其利用基于lucene的建索引引擎,根據(jù)教學(xué)資源的分詞結(jié)果建立索引文件,并存儲(chǔ)索引文件;查詢搜索單元,其用于根據(jù)關(guān)鍵詞或語句的分詞結(jié)果生成查詢對(duì)象,對(duì)建立索引單元內(nèi)的索引文件進(jìn)行搜索,搜索到的與查詢對(duì)象最相關(guān)的教學(xué)資源后返回用戶交互單元。本發(fā)明具有優(yōu)秀的面向?qū)ο蟮南到y(tǒng)架構(gòu),使得對(duì)于Lucene擴(kuò)展的難度降低,方便擴(kuò)充新功能。
【IPC分類】G06F17/30
【公開號(hào)】CN105045852
【申請(qǐng)?zhí)枴緾N201510392169
【發(fā)明人】王肅, 鄭駿, 陳志云, 胡文心, 王明亞
【申請(qǐng)人】華東師范大學(xué)
【公開日】2015年11月11日
【申請(qǐng)日】2015年7月6日