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

正文內(nèi)容

基于lucene的站內(nèi)搜索引擎的設(shè)計實現(xiàn)論文-wenkub.com

2024-11-06 15:58 本頁面
   

【正文】 LUCENE 本身還提供了對索引文件的 優(yōu)化,可以對索引文件自身進行優(yōu)化 。 搜索引擎是由網(wǎng)絡(luò)蜘蛛爬行器 、 索引器和檢索器 三部分組成 。 畢業(yè)論文 第 32 頁 總 結(jié) 通過這次對基于 LUCENE 站內(nèi)搜索引擎系統(tǒng)的設(shè)計, 解了什么是全文檢索, 對搜索引擎的原理有了一個基本的了解, 對 LUCENE 的系統(tǒng)原理和組織結(jié)構(gòu)進行了全面的了解和分析 ,并且用 LUCENE 開發(fā)了一個站內(nèi)搜索引擎。 } } 所以可以看出只要把要搜索的文件能夠轉(zhuǎn)化為 LUCENE 能夠識別出的格式,就可以對任何文件進行建立索引,從而進行搜索索引。 } ()。 ((text, ()))。 k icount。 dt = [T]。 DataSet ds = new DataSet()。 ((title, GetTitle(html)))。 } int relativePathStartsAt = (\\)? : + 1。另外索引文件的大小也變 小為原來的一半左右。 畢業(yè)論文 第 24 頁 系統(tǒng)組織結(jié)構(gòu) 圖 搜索 主程序 圖 系統(tǒng)結(jié)構(gòu) 畢業(yè)論文 第 25 頁 流程實現(xiàn) 根據(jù) 網(wǎng)站中不同模塊 建立生成 動態(tài) 索引 圖 根據(jù)網(wǎng)站中不同模塊建立生成動態(tài)索引 此 界面 主要功能是為了生成動態(tài)索引,下拉框 的每個選項分別對應(yīng)于數(shù)據(jù)庫中的不同的表,以便可以對 SQLSERVER2020 數(shù)據(jù)庫中動態(tài)的數(shù)據(jù)建立索引文件,從而為搜索奠定基礎(chǔ)。 圖 官方網(wǎng)站系統(tǒng)搜索結(jié)構(gòu)圖 畢業(yè)論文 第 22 頁 此次開發(fā)的 2020 世界官方 網(wǎng)的所需要的站內(nèi)搜索引擎是對站內(nèi)的指定的所有內(nèi)容進行搜索,網(wǎng)站中的內(nèi)容包括靜態(tài)內(nèi)容和動態(tài)內(nèi)容,靜態(tài)內(nèi)容是指一些靜態(tài)的 aspx 頁面 動態(tài)內(nèi)容是 在 SQLSERVER 數(shù)據(jù)庫里面 存儲的 ,所以搜索引擎就是對靜態(tài)頁面和數(shù)據(jù)庫建立索引, 搜索器分別對生產(chǎn)靜態(tài)和動態(tài)的索引進行聯(lián)合搜索 ,從而達到對整個網(wǎng)站 指定的 內(nèi)容的站內(nèi)搜索 。詞典通常非常小,因而,整個過程的時間是毫秒級的。其次大量用到的是對數(shù)字的壓縮,數(shù)字只保存與上一個值的差值(這樣可以減小數(shù)字的長度,進而減少保存該數(shù)字需要的字節(jié)數(shù))。其中詞典文件不僅 保存有每個關(guān)鍵詞,還保留了指向頻率文件和位置文件的指針,通過指針可以找到該關(guān)鍵字的頻率信息和位置信息。 加上 “出現(xiàn)頻率 ”和 “出現(xiàn)位置 ”信息后,我們的索引結(jié)構(gòu)變?yōu)椋? 畢業(yè)論文 第 19 頁 表 LUCENE倒排序原理 2 關(guān)鍵詞 文章號 [出現(xiàn)頻率 ] 出現(xiàn)位置 guangzhou 1[2] 3, 6 he 2[1] 1 i 1[1] 4 live 1[2],2[1] 2, 5, 2 shanghai 2[1] 3 tom 1[1] 1 以 live 這行為例我們說明一下該結(jié)構(gòu): live 在文章 1 中出現(xiàn)了 2 次,文章 2 中出現(xiàn)了一次,它的出現(xiàn)位置為 “2,5,2”這表示什么呢?我們需要結(jié)合 文章號和出現(xiàn)頻率來分析,文章 1 中出現(xiàn)了 2 次,那么 “2,5”就表示 live 在文章 1 中出現(xiàn)的兩個位置,文章 2 中出現(xiàn)了一次,剩下的 “2”就表示 live 是文章 2 中第 2 個關(guān)鍵字。 (2) 文章中的 ”in”, “once” “too”等詞沒有什么實際意義,中文中的 “的 ”“是 ”等字通常 畢業(yè)論文 第 18 頁 也無具體含義, 這些不代表概念的詞可以過濾掉,這個也就是在 LUCENE 詳細分析 中所講的 StopTokens (3) 用戶通常希望查 “He”時能把含 “he”, “HE”的文章也找出來,所以所有單詞需要統(tǒng)一大小寫。這是一種數(shù)據(jù)庫之外的處理方法,其有其優(yōu)點(格式平臺獨立、速度快),也有其缺點(獨立性帶來的共享訪問接口問題等等),具體如何衡量兩種方法之間的利弊,本文這里就不 討論了。此外,標準化因 子文件和被刪除文檔文件則提供了一些程序內(nèi)部的輔助設(shè)施(標準化因子用在評分排序機制中,被刪除文檔是一種偽刪除手段)。由于索引信息是靜態(tài)存儲的,域集合與項集合中的文件組采用了一種類似的存儲辦法:一個小型的索引文件,運行時載入內(nèi)存;一個對應(yīng)于索引文件的實際信息文件,可以按照索引中指示的偏移量隨機訪問;索引文件與信息文件在記錄的排列順序上存在隱式的對應(yīng)關(guān)系,即索引文件中按照“索引項 索引項 2?”排列,則信息文件則也按照“信息項 信息項 2?”排列。接下來 從宏觀關(guān)系上 說明一下這些文件組成。此外還有三個文件,分別用來保存所有的段的記錄、保存已刪除文件的記錄和控制讀寫的同步,它們分別是 segments, deletable 和 lock 文件,都沒有擴展名。文檔是提取了某個文件中的所有信息之后的結(jié)果,這些組成了段,或者稱為一個子索引。 圖 LUCENE 索引文件概念結(jié)構(gòu) 以上就是 LUCENE 的索引文件的概念結(jié)構(gòu)。 畢業(yè)論文 第 15 頁 首先在 LUCENE 的文件格式中,以字節(jié)為基礎(chǔ),定義了如下的數(shù)據(jù)類型: 表 LUCENE文件格式中定義的數(shù)據(jù)類型 數(shù)據(jù)類型 所占字節(jié)長度(字節(jié)) 說明 Byte 1 基本數(shù)據(jù)類型,其他數(shù)據(jù)類型以此為基礎(chǔ)定義 UInt32 4 32 位無符號整數(shù),高位優(yōu)先 UInt64 8 64 位無符號整數(shù),高位優(yōu)先 VInt 不定,最少 1 字節(jié) 動態(tài)長度整數(shù),每字 節(jié)的最高位表明還剩多少字節(jié),每字節(jié)的低七位表明整數(shù)的值,高位優(yōu)先。這不僅僅是我們嘗試用 C++語言重新實現(xiàn) LUCENE 的必須工作,也是進一步做 LUCENE 開發(fā)工作的必要準備。存儲抽象對應(yīng)于 。 查 詢 語 句 語 法 分 析 邏 輯 對 應(yīng) 于 部分,并且調(diào)用了 的代碼。字節(jié)流則是對文件抽象的直接操作的體現(xiàn),通過固定長度的字節(jié)( LUCENE 定義為 8 比特位長,后面文件格式將詳細敘述)流的處理,將文件操作解脫出來,也做到了與平臺文件系統(tǒng)的無關(guān)性?,F(xiàn)在將圖中的涉及到的流的類型與各個邏輯對應(yīng)系統(tǒng)的相 關(guān)部分的關(guān)系說明一下。 以下將討論 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)的另一個方式是 去探討其中數(shù)據(jù)流的走向,并以此摸清楚LUCENE 系統(tǒng)內(nèi)部的調(diào)用時序。字典切詞則是相對于詞庫來尋找哪個應(yīng)該作為詞,而哪個不是,由此也可以知道,字典切詞是比較準確的,但是由于漢語詞語的不斷變化和擴充性,所以現(xiàn)在還要結(jié)合雙字切詞才 可以更好地提高準確度。 而且一般中文分詞也都是采用 LUCENE 的中文分詞方法。 搜索器就是人們所說的網(wǎng)絡(luò)蜘蛛 (Web Spider)或者叫網(wǎng)絡(luò)機器人。最后,雖然 LUCENE 使用 Java 語言寫成,但是開放源代碼社區(qū)的程序員正在不懈的將之使用各種傳統(tǒng)語言實現(xiàn)(例如 . framework),在遵守 LUCENE 索引文件格式的基礎(chǔ)上,使得 LUCENE 能夠運行在各種各樣的平臺上,系統(tǒng)管理員可以根據(jù)當前的平臺適合的語言來合理的選擇。首先,它的開發(fā)源代碼發(fā)行方式(遵守 Apache Software License),在此基礎(chǔ)上程序員不僅僅可以充分的利用 LUCENE 所提供的強大功能,而且可以深入細致的學習到全文檢索引擎制作 技術(shù)和面相對象編程的實踐,進而在此基礎(chǔ)上根據(jù)應(yīng)用的實際情況編寫出更好的更適合當前應(yīng)用的全文檢索引擎。 設(shè)計了獨立于語言和文件格式的文本分析接口,索引器通過接受 Token 流完成索引文件的創(chuàng)立,用戶擴展新的語言和文件格式,只需要實現(xiàn)文本分析的接口。 LUCENE 定義了一套以 8 位字節(jié)為基礎(chǔ)的索引文件格式,使得兼容系統(tǒng)或者不同平臺的應(yīng)用能夠共享建立的索引文件。 畢業(yè)論文 第 9 頁 LUCENE 的應(yīng)用、特點及優(yōu)勢 作為一個開放源代碼項目, LUCENE 從問世之后,引發(fā)了開放源代碼社群的巨大反響,程序員們不僅使用它構(gòu)建具體的全文檢索應(yīng)用,而且將之集成到各種系統(tǒng)軟件中 去,以及構(gòu)建 Web 應(yīng)用,甚至某些商業(yè)軟件也采用了 LUCENE 作為其內(nèi)部全文檢索子系統(tǒng)的核心。 LUCENE 的發(fā)展歷程:早先發(fā)布在作者自己的 ,后來發(fā)布在SourceFe , 2020 年年底成為 APACHE 基金會 jakarta 的一個子項目: 已經(jīng)有很多 Java 項目都使用了 LUCENE 作為其后臺的全文索引引擎,比較著名的有: Jive: WEB 論壇系統(tǒng); Eyebrows:郵件列表 HTML 歸檔 /瀏覽 /查詢系統(tǒng),本文的主要參考文檔 “TheLUCENE search engine: Powerful, flexible, and free”作者就是 EyeBrows系統(tǒng)的主要開發(fā)者之一,而 EyeBrows 已經(jīng)成為目前 APACHE 項目的主要郵件列表歸檔系統(tǒng)。 索引內(nèi)容抓取 LUCENE的文檔是由多個字段組成的,甚至可以控制那些字段需要進行索引,那些字段不需要索引,近一步索引的字段也分為需要分詞和不需要分詞的類型需要進行分詞的索引,比如:標題,文章內(nèi)容字段 , 不需要進行分詞的索引,比如:作者 /日期字段 缺乏通用性,往往將文檔整個索引了 語言分析 通過語言分析器的不同擴展實現(xiàn): 可以過濾掉不需要的詞: an the of 等, 西文語法分析:將 jumps jumped jumper都歸結(jié)成 jump進行索引/檢索 非英文支持:對亞洲語言,阿拉伯語言的索引支持 缺乏通用接口實現(xiàn) 查詢分析 通過查詢分析接口的實現(xiàn),可以定制自己的查詢語法規(guī)則:比如: 多個關(guān)鍵詞之間的 + and or關(guān)系等 并發(fā)訪問 能夠支持多用戶的使用 畢業(yè)論文 第 8 頁 全文檢索和數(shù)據(jù)庫應(yīng)用最大的不同在于:讓最相關(guān)的頭 100 條結(jié)果滿足 98%以上用戶的需求 LUCENE 的創(chuàng)新之處: 大部分的搜索 (數(shù)據(jù)庫)引擎都是用 B 樹結(jié)構(gòu)來維護索引,索引的更新會導致大量的 IO 操作, LUCENE 在實現(xiàn)中,對此稍微有所改進:不是維護一個索引文件,而是在擴展索引的時候不斷創(chuàng)建新的索引文件,然后定期的把這些新的小索引文件合并到原先的大索引中(針對不同的更新策略,批次的大小可以調(diào)整),這樣在不影響檢索的效率的前提下,提高了索引的效率。可以通過一下表格對比一下數(shù)據(jù)庫的模糊查詢 [8]: 表 LUCENE和數(shù)據(jù)庫功能的比較 LUCENE全文索引引擎 數(shù)據(jù)庫 匹配效果 通過詞元 (term)進行匹配,通過語言分析接口的實現(xiàn),可以實現(xiàn)對中文等非英語的支持 使用: like %% 會把 herlands也匹配出來, 多 個 關(guān) 鍵 詞 的 模 糊 匹 配 : 使 用 like %%% : 就 不 能 匹 配 詞 序 顛 倒 的.. 匹配度 有匹配度算法,將匹配程度(相似度)比較高的結(jié)果排在前面。 畢業(yè)論文 第 6 頁 所以建立一個高效檢索系統(tǒng)的關(guān)鍵是建立一個類似于科技索引一樣的反向索引機制,將數(shù)據(jù)源(比如多篇文章)排序順序存儲的同時,有另外一個排好序的關(guān)鍵詞列表,用于存儲關(guān)鍵詞 ==文章映射關(guān)系,利用這樣的映射關(guān)系索引: [關(guān)鍵詞 ==出現(xiàn)關(guān)鍵詞的文章編號,出現(xiàn)次數(shù)(甚至包括位置:起始偏移量,結(jié)束偏移量),出現(xiàn)頻率 ],檢索過程就是把 模糊查詢變成多個可以利用索引的精確查詢的邏輯組合的過程 。而數(shù)據(jù)庫索引能夠大大提高查詢的速度原理也是一樣,想像一下通過書后面的索引查找的速度要比一頁一頁地翻內(nèi)容高多少倍 …… 而索引之所以效率高,另外一個原因是它是排好序的。比如在當今多語言處理的環(huán)境下,有時需要給全文檢索系統(tǒng)添加處理某種語言或者文本格式的功能,比如在英文系統(tǒng)中添加中文處理功能,在純文本系統(tǒng)中添加 XML 或者 HTML 格式的文本處理功能,系統(tǒng)的開放性和擴充性就十分的重要。 畢業(yè)論文 第 4 頁 圖 全文檢索系統(tǒng)結(jié)構(gòu) 在 圖中,我們看到:全文檢索系統(tǒng)中最為關(guān)鍵的部分是全文檢索引擎,各種應(yīng)用程序都需要建立在
點擊復制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1