freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于lucene的站內(nèi)搜索引擎的設(shè)計(jì)實(shí)現(xiàn)論文(編輯修改稿)

2024-12-16 15:58 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 E和數(shù)據(jù)庫(kù)功能的比較 LUCENE全文索引引擎 數(shù)據(jù)庫(kù) 匹配效果 通過(guò)詞元 (term)進(jìn)行匹配,通過(guò)語(yǔ)言分析接口的實(shí)現(xiàn),可以實(shí)現(xiàn)對(duì)中文等非英語(yǔ)的支持 使用: like %% 會(huì)把 herlands也匹配出來(lái), 多 個(gè) 關(guān) 鍵 詞 的 模 糊 匹 配 : 使 用 like %%% : 就 不 能 匹 配 詞 序 顛 倒 的.. 匹配度 有匹配度算法,將匹配程度(相似度)比較高的結(jié)果排在前面。 沒(méi)有匹配程度的控制:比如有記錄中 出現(xiàn) 5次 和出現(xiàn) 1次的,結(jié)果是一樣的 結(jié)果輸出 通過(guò)特別的算法,將最匹配度最高的頭 100 條結(jié)果輸出,結(jié)果集是緩沖式的小批量讀取的。 返回所有的結(jié)果集,在匹配條目非常多的時(shí)候(比如上萬(wàn)條)需要大量的內(nèi)存存放這些臨時(shí)結(jié)果集 可定制性 通 過(guò)不同的語(yǔ)言分析接口實(shí)現(xiàn),可以方便的定制出符合應(yīng)用需要的索引規(guī)則(包括對(duì)中文的支持) 沒(méi)有接口或接口復(fù)雜,無(wú)法定制 結(jié)論 高負(fù)載的模糊查詢(xún)應(yīng)用,需要負(fù)責(zé)的模糊查詢(xún)的規(guī)則,索引的資料量比較大 使用率低,模糊匹配規(guī)則簡(jiǎn)單或者需要模糊查詢(xún)的資料量少 畢業(yè)論文 第 7 頁(yè) 表 LUCENE和其它全文檢索系統(tǒng)區(qū)別 LUCENE 其他開(kāi)源全文檢索系統(tǒng) 增量索引和批量索引 可以進(jìn)行增量的索引 (Append),可以對(duì)于大量數(shù) 據(jù)進(jìn)行批量索引,并且接口設(shè)計(jì)用于優(yōu)化批量索引和小批量的增量索引 很多系統(tǒng)只支持批量的索引,有時(shí)數(shù)據(jù)源有 一點(diǎn)增加也需要重建索引。 數(shù)據(jù)源 LUCENE沒(méi)有定義具體的數(shù)據(jù)源,而是一個(gè)文檔的結(jié)構(gòu),因此可以非常靈活的適應(yīng)各種應(yīng)用(只要前端有合適的轉(zhuǎn)換器把數(shù)據(jù)源轉(zhuǎn)換成相應(yīng)結(jié)構(gòu)), 很多系統(tǒng)只針對(duì)網(wǎng)頁(yè),缺乏其他格式文檔的靈活性。 索引內(nèi)容抓取 LUCENE的文檔是由多個(gè)字段組成的,甚至可以控制那些字段需要進(jìn)行索引,那些字段不需要索引,近一步索引的字段也分為需要分詞和不需要分詞的類(lèi)型需要進(jìn)行分詞的索引,比如:標(biāo)題,文章內(nèi)容字段 , 不需要進(jìn)行分詞的索引,比如:作者 /日期字段 缺乏通用性,往往將文檔整個(gè)索引了 語(yǔ)言分析 通過(guò)語(yǔ)言分析器的不同擴(kuò)展實(shí)現(xiàn): 可以過(guò)濾掉不需要的詞: an the of 等, 西文語(yǔ)法分析:將 jumps jumped jumper都?xì)w結(jié)成 jump進(jìn)行索引/檢索 非英文支持:對(duì)亞洲語(yǔ)言,阿拉伯語(yǔ)言的索引支持 缺乏通用接口實(shí)現(xiàn) 查詢(xún)分析 通過(guò)查詢(xún)分析接口的實(shí)現(xiàn),可以定制自己的查詢(xún)語(yǔ)法規(guī)則:比如: 多個(gè)關(guān)鍵詞之間的 + and or關(guān)系等 并發(fā)訪問(wèn) 能夠支持多用戶(hù)的使用 畢業(yè)論文 第 8 頁(yè) 全文檢索和數(shù)據(jù)庫(kù)應(yīng)用最大的不同在于:讓最相關(guān)的頭 100 條結(jié)果滿(mǎn)足 98%以上用戶(hù)的需求 LUCENE 的創(chuàng)新之處: 大部分的搜索 (數(shù)據(jù)庫(kù))引擎都是用 B 樹(shù)結(jié)構(gòu)來(lái)維護(hù)索引,索引的更新會(huì)導(dǎo)致大量的 IO 操作, LUCENE 在實(shí)現(xiàn)中,對(duì)此稍微有所改進(jìn):不是維護(hù)一個(gè)索引文件,而是在擴(kuò)展索引的時(shí)候不斷創(chuàng)建新的索引文件,然后定期的把這些新的小索引文件合并到原先的大索引中(針對(duì)不同的更新策略,批次的大小可以調(diào)整),這樣在不影響檢索的效率的前提下,提高了索引的效率。 LUCENE 簡(jiǎn)介 LUCENE 不是一個(gè)完整的全文索引應(yīng)用,而是是一個(gè)用 Java 寫(xiě)的全文索引引擎工具包,它可以方便的嵌入到各種應(yīng)用中實(shí)現(xiàn)針對(duì)應(yīng)用的全文索引 /檢索功能。 LUCENE 的作 者: LUCENE 的貢獻(xiàn)者 Doug Cutting 是一位資深全文索引 /檢索專(zhuān)家,曾經(jīng)是 VTwin 搜索引擎 (Apple 的 Copland 操作系統(tǒng)的成就之一 )的主要開(kāi)發(fā)者,后在Excite 擔(dān)任高級(jí)系統(tǒng)架構(gòu)設(shè)計(jì)師,目前從事于一些 INTERNET 底層架構(gòu)的研究。他貢獻(xiàn)出的 LUCENE 的目標(biāo)是為各種中小型應(yīng)用程序加入全文檢索功能。 LUCENE 的發(fā)展歷程:早先發(fā)布在作者自己的 ,后來(lái)發(fā)布在SourceFe , 2020 年年底成為 APACHE 基金會(huì) jakarta 的一個(gè)子項(xiàng)目: 已經(jīng)有很多 Java 項(xiàng)目都使用了 LUCENE 作為其后臺(tái)的全文索引引擎,比較著名的有: Jive: WEB 論壇系統(tǒng); Eyebrows:郵件列表 HTML 歸檔 /瀏覽 /查詢(xún)系統(tǒng),本文的主要參考文檔 “TheLUCENE search engine: Powerful, flexible, and free”作者就是 EyeBrows系統(tǒng)的主要開(kāi)發(fā)者之一,而 EyeBrows 已經(jīng)成為目前 APACHE 項(xiàng)目的主要郵件列表歸檔系統(tǒng)。 Cocoon:基于 XML 的 web 發(fā)布框架,全文檢 索部分使用了 LUCENE 。 Eclipse:基于 Java 的開(kāi)放開(kāi)發(fā)平臺(tái),幫助部分的全文索引使用了 LUCENE 對(duì)于中文用戶(hù)來(lái)說(shuō),最關(guān)心的問(wèn)題是其是否支持中文的全文檢索。但通過(guò)后面對(duì)于LUCENE 的結(jié)構(gòu)的介紹,你會(huì)了解到由于 LUCENE 良好架構(gòu)設(shè)計(jì),對(duì)中文的支持只需對(duì)其語(yǔ)言詞法分析接口進(jìn)行擴(kuò)展就能實(shí)現(xiàn)對(duì)中文檢索的支持。 畢業(yè)論文 第 9 頁(yè) LUCENE 的應(yīng)用、特點(diǎn)及優(yōu)勢(shì) 作為一個(gè)開(kāi)放源代碼項(xiàng)目, LUCENE 從問(wèn)世之后,引發(fā)了開(kāi)放源代碼社群的巨大反響,程序員們不僅使用它構(gòu)建具體的全文檢索應(yīng)用,而且將之集成到各種系統(tǒng)軟件中 去,以及構(gòu)建 Web 應(yīng)用,甚至某些商業(yè)軟件也采用了 LUCENE 作為其內(nèi)部全文檢索子系統(tǒng)的核心。 apache 軟件基金會(huì)的網(wǎng)站使用了 LUCENE 作為全文檢索的引擎, IBM 的開(kāi)源軟件 eclipse 的 版本中也采用了 LUCENE 作為幫助子系統(tǒng)的全文索引引擎,相應(yīng)的IBM 的商業(yè)軟件 Web Sphere 中也采用了 LUCENE。 LUCENE 以其開(kāi)放源代碼的特性、優(yōu)異的索引結(jié)構(gòu)、良好的系統(tǒng)架構(gòu)獲得了越來(lái)越多的應(yīng)用。 LUCENE 作為一個(gè)全文檢索引擎,其具有如下突出的優(yōu)點(diǎn): 索引文件格式獨(dú)立于應(yīng)用平臺(tái)。 LUCENE 定義了一套以 8 位字節(jié)為基礎(chǔ)的索引文件格式,使得兼容系統(tǒng)或者不同平臺(tái)的應(yīng)用能夠共享建立的索引文件。 在傳統(tǒng)全文檢索引擎的倒排索引的基礎(chǔ)上,實(shí)現(xiàn)了分塊索引,能夠針對(duì)新的文件建立小文件索引,提升索引速度。然后通過(guò)與原有索引的合并,達(dá)到優(yōu)化的目的。 優(yōu)秀的面向?qū)ο蟮南到y(tǒng)架構(gòu),使得對(duì)于 LUCENE 擴(kuò)展的學(xué)習(xí)難度降低,方便擴(kuò)充新功能。 設(shè)計(jì)了獨(dú)立于語(yǔ)言和文件格式的文本分析接口,索引器通過(guò)接受 Token 流完成索引文件的創(chuàng)立,用戶(hù)擴(kuò)展新的語(yǔ)言和文件格式,只需要實(shí)現(xiàn)文本分析的接口。 已經(jīng)默認(rèn)實(shí)現(xiàn)了一套強(qiáng)大的查 詢(xún)引擎,用戶(hù)無(wú)需自己編寫(xiě)代碼即使系統(tǒng)可獲得強(qiáng)大的查詢(xún)能力, LUCENE 的查詢(xún)實(shí)現(xiàn)中默認(rèn)實(shí)現(xiàn)了布爾操作、模糊查詢(xún)( Fuzzy Search)、分組查詢(xún)等等。 6 、 LUCENE 數(shù)據(jù)格式兼容 性 。即用 Java LUCENE 生成的索引,能被 C 讀出來(lái),反之亦然 面對(duì)已經(jīng)存在的商業(yè)全文檢索引擎, LUCENE 也具有相當(dāng)?shù)膬?yōu)勢(shì)。首先,它的開(kāi)發(fā)源代碼發(fā)行方式(遵守 Apache Software License),在此基礎(chǔ)上程序員不僅僅可以充分的利用 LUCENE 所提供的強(qiáng)大功能,而且可以深入細(xì)致的學(xué)習(xí)到全文檢索引擎制作 技術(shù)和面相對(duì)象編程的實(shí)踐,進(jìn)而在此基礎(chǔ)上根據(jù)應(yīng)用的實(shí)際情況編寫(xiě)出更好的更適合當(dāng)前應(yīng)用的全文檢索引擎。在這一點(diǎn)上,商業(yè)軟件的靈活性遠(yuǎn)遠(yuǎn)不及 LUCENE。其次, 畢業(yè)論文 第 10 頁(yè) LUCENE 秉承了開(kāi)放源代碼一貫的架構(gòu)優(yōu)良的優(yōu)勢(shì),設(shè)計(jì)了一個(gè)合理而極具擴(kuò)充能力的面向?qū)ο蠹軜?gòu),程序員可以在 LUCENE 的基礎(chǔ)上擴(kuò)充各種功能,比如擴(kuò)充中文處理能力,從文本擴(kuò)充到 HTML、 PDF 等等文本格式的處理,編寫(xiě)這些擴(kuò)展的功能不僅僅不復(fù)雜,而且由于 LUCENE 恰當(dāng)合理的對(duì)系統(tǒng)設(shè)備做了程序上的抽象,擴(kuò)展的功能也能輕易的達(dá)到跨平臺(tái)的能力。最后,轉(zhuǎn)移到 apache 軟件基金會(huì)后,借助于 apache 軟件基金會(huì)的網(wǎng)絡(luò)平臺(tái),程序員可以方便的和開(kāi)發(fā)者、其它程序員交流,促成資源的共享,甚至直接獲得已經(jīng)編寫(xiě)完備的擴(kuò)充功能。最后,雖然 LUCENE 使用 Java 語(yǔ)言寫(xiě)成,但是開(kāi)放源代碼社區(qū)的程序員正在不懈的將之使用各種傳統(tǒng)語(yǔ)言實(shí)現(xiàn)(例如 . framework),在遵守 LUCENE 索引文件格式的基礎(chǔ)上,使得 LUCENE 能夠運(yùn)行在各種各樣的平臺(tái)上,系統(tǒng)管理員可以根據(jù)當(dāng)前的平臺(tái)適合的語(yǔ)言來(lái)合理的選擇。 互聯(lián)網(wǎng) 搜索引擎 的研究 當(dāng)今的搜索引擎大多采用集中式的搜索方式。所謂集中式 就是通過(guò)很多服務(wù)器把網(wǎng)絡(luò)資源全部下載到本地,然后做一些處理,為搜索做準(zhǔn)備。搜索引擎結(jié)構(gòu)大致分為 : 搜索器、索引器和檢索器等幾部分組成 。 搜索器就是人們所說(shuō)的網(wǎng)絡(luò)蜘蛛 (Web Spider)或者叫網(wǎng)絡(luò)機(jī)器人。通過(guò)這種 Spider 程序,可以從一個(gè)網(wǎng)頁(yè)出發(fā),通過(guò)提取其中的 URL,在遵從 Robot Exclusion 協(xié)議的前提下,不斷地提取得到的 URL,并且下載本 URL 的資源;而索引器的主要工作則是利用下載的網(wǎng)絡(luò)資源,提取索引項(xiàng),用于生成文檔庫(kù)的索引表;檢索器主要是通過(guò)理解用戶(hù)的查詢(xún)需求,在文檔庫(kù)中檢索出文檔并且進(jìn)行快 速匹配,然后進(jìn)行相關(guān)性排序,通過(guò)鏈接網(wǎng)頁(yè)提供給用戶(hù)檢索結(jié)果。至此,完成搜索。 這樣就可以知道 :只要 LUCENE+”蜘蛛爬蟲(chóng) ”+”網(wǎng)頁(yè)相關(guān)度排名 ”,就可以成為一個(gè)真正意義上的搜索引擎,事實(shí)上 LUCENE 的創(chuàng)始人 Doug Cutting 已經(jīng)開(kāi)發(fā)了一個(gè)叫做 ”Nutch”的搜索引擎系統(tǒng)了,這個(gè)系統(tǒng)加上了“蜘蛛程序”可以對(duì)整個(gè) Inter 的網(wǎng)頁(yè)進(jìn)行搜索, Nutch 具體的 邏輯 關(guān)系圖如下: 畢業(yè)論文 第 11 頁(yè) 圖 Nutch 邏輯關(guān)系圖 真正的搜索引擎在搜索的時(shí)候就是和 LUCENE 采用一樣的原理 :在 Index 中遍歷所有的Segments 目錄。 而且一般中文分詞也都是采用 LUCENE 的中文分詞方法。 中文分詞的簡(jiǎn)單介紹 切詞 [5]對(duì)于搜索結(jié)果來(lái)說(shuō)是十分重要的環(huán)節(jié),對(duì)于英文 ,只用關(guān)注空格即可實(shí)現(xiàn)切詞,而對(duì)于中文,由于中文詞匯非常豐富,詞語(yǔ)的組成十分不固定,所以中文切詞就變得比較困難。現(xiàn)在比較普遍的是中文單字切詞、雙字切詞、字典切詞,對(duì)于單字切詞由于其一開(kāi)始的不準(zhǔn)確性就被很多人放棄,最準(zhǔn)確的切詞方法應(yīng)該是字典切詞,匹配方法大致有前向匹配、后向匹配和基于 統(tǒng)計(jì)的匹配。 舉例來(lái)說(shuō),對(duì)于“中華人民”這句話,單字切詞就是把這四個(gè)字一個(gè)作為一個(gè) 詞索引,搜索的時(shí)候逐字匹配,而雙字索引是把這句話依次按兩個(gè)字加以區(qū)分,分為“中華”,“華人”,“人民”這樣切詞。字典切詞則是相對(duì)于詞庫(kù)來(lái)尋找哪個(gè)應(yīng)該作為詞,而哪個(gè)不是,由此也可以知道,字典切詞是比較準(zhǔn)確的,但是由于漢語(yǔ)詞語(yǔ)的不斷變化和擴(kuò)充性,所以現(xiàn)在還要結(jié)合雙字切詞才 可以更好地提高準(zhǔn)確度。由于字典切詞和雙字切詞的配合使用,搜索 的匹配精度在很大程度上是可以得到保證的, LUCENE 的切詞方 法,通過(guò)程序集 來(lái)實(shí)現(xiàn)。 畢業(yè)論文 第 12 頁(yè) 系統(tǒng)結(jié)構(gòu) LUCENE 系統(tǒng)結(jié)構(gòu)組織 LUCENE 作為一個(gè)優(yōu)秀的全文檢索引擎 [3],其系統(tǒng)結(jié)構(gòu)具有強(qiáng)烈的面向?qū)ο筇卣?。首先是定義了一個(gè)與平臺(tái)無(wú)關(guān)的索引文件格式,其次通過(guò)抽象將系統(tǒng)的核心組成部分設(shè)計(jì)為抽象類(lèi),具體的平臺(tái)實(shí)現(xiàn)部分設(shè)計(jì)為抽象類(lèi)的實(shí)現(xiàn),此外與具體平臺(tái)相關(guān)的部分比如文件存儲(chǔ)也封裝為類(lèi),經(jīng)過(guò)層層的面向?qū)ο笫降奶幚?,最終達(dá)成了一個(gè)低耦合高效率,容易二次開(kāi)發(fā)的檢索引擎系統(tǒng)。 以下將討論 LUCENE 系統(tǒng)的結(jié)構(gòu)組織,并給出系統(tǒng)結(jié)構(gòu)與源碼組織圖: 圖 系統(tǒng)結(jié)構(gòu)與源碼組織結(jié)構(gòu)圖 數(shù)據(jù)流分析 理解 LUCENE 系統(tǒng)結(jié)構(gòu)的另一個(gè)方式是 去探討其中數(shù)據(jù)流的走向,并以此摸清楚LUCENE 系統(tǒng)內(nèi)部的調(diào)用時(shí)序。在此基礎(chǔ)上,我們能夠更加深入的理解 LUCENE 的系統(tǒng)結(jié)構(gòu)組織,以方便以后在 LUCENE系統(tǒng)上的開(kāi)發(fā)工作。這部分的分析,是深入 LUCENE系統(tǒng)的鑰匙,也是進(jìn)行重寫(xiě)的基礎(chǔ)。 畢業(yè)論文 第 13 頁(yè) LUCENE 系統(tǒng)中的主要的數(shù)據(jù)流以及它們之間的關(guān)系圖: 圖 數(shù)據(jù)流圖 圖 很好的表明了 LUCENE 在內(nèi)部的數(shù)據(jù)流組織情況,并且沿著數(shù)據(jù)流的方向我們也可以對(duì)與 LUCENE 內(nèi)部的執(zhí)行時(shí)序有一個(gè)清楚的了解。現(xiàn)在將圖中的涉及到的流的類(lèi)型與各個(gè)邏輯對(duì)應(yīng)系統(tǒng)的相 關(guān)部分的關(guān)系說(shuō)明一下。 圖中共存在 4 種數(shù)據(jù)流,分別是文本流、 token 流、字節(jié)流與查詢(xún)語(yǔ)句對(duì)象流。文本流表示了對(duì)于索引目標(biāo)和交互控制的抽象,即用文本流表示了將要索引的文件,用文本流向用戶(hù)輸出信息;在實(shí)際的實(shí)現(xiàn)中, LUCENE 中的文本流采用了 UCS2 作為編碼,以達(dá)到適應(yīng)多種語(yǔ)言文字的處理的目的。 Token 流
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1