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

正文內(nèi)容

基于lucene的站內(nèi)搜索引擎的設(shè)計(jì)實(shí)現(xiàn)論文-在線瀏覽

2025-01-13 15:58本頁(yè)面
  

【正文】 前 的站內(nèi)搜索引擎做得還不是很好, 普遍存在搜索精度 差 ,搜索時(shí)間長(zhǎng),擴(kuò)展性不夠強(qiáng)等缺點(diǎn), 能夠 可以供給網(wǎng)站免費(fèi)使用和學(xué)習(xí)的站內(nèi)搜索引擎 就更少了 ,這樣就造成了有些網(wǎng)站沒(méi)有站內(nèi)搜索引擎或者搜索引擎不好用的局面 , 這對(duì)網(wǎng)站本身的用戶體驗(yàn)顯然是不能令人滿意的,所以站內(nèi)搜索引擎成為一個(gè)網(wǎng)站必不可少的功能之一 。 畢業(yè)論文 第 2 頁(yè) 課題目前研究情況及存在問(wèn)題 目前有一些成熟的搜索引擎可以使用,但是都是用于商業(yè),一般不公開(kāi)源代碼, 學(xué)習(xí)起來(lái)比較困難, 所以一些開(kāi)源的項(xiàng)目成為設(shè)計(jì)時(shí)的首選, 經(jīng)過(guò)對(duì)搜索技術(shù)的研究,在Apache 上發(fā)現(xiàn)了一個(gè) JAVA 實(shí)現(xiàn) 的用于搜索的開(kāi)源項(xiàng)目 LUCENE, LUCENE 目前是公認(rèn)的最好的 搜索方面的 開(kāi)源項(xiàng)目之一, 現(xiàn)在 LUCENE 已經(jīng) 成功的 被移植到 C,Perl、Python、 C++、 .NET 及 Ruby 版本 , 所以其擴(kuò)展性比較好,可以適用于大多數(shù)的平臺(tái),所以是開(kāi)發(fā)站內(nèi)搜索引擎的最理想的技術(shù),但是目前存在若干問(wèn)題: 因?yàn)閷?shí)際項(xiàng)目 需要 Microsoft Visual 平臺(tái) , 所以 要將 LUCENE 移植到 .NET 平臺(tái)上使用。 由于公司項(xiàng)目的具體需求, 以后將會(huì)遇到 多條件 的搜索 ,以及搜索 SQLSERVER數(shù)據(jù)庫(kù) 和聯(lián)合多個(gè)目錄進(jìn)行 的搜索問(wèn)題。 論文組織結(jié)構(gòu) 緒論部分介紹本系統(tǒng)的課題來(lái)源以及目前的研究情況和存在的問(wèn)題。 第 5 章 介紹系統(tǒng)開(kāi)發(fā)過(guò)程應(yīng)用到的幾點(diǎn)關(guān)鍵技術(shù)。 在附錄部分附上了系統(tǒng)的部分實(shí)現(xiàn)代碼,以供參考。這個(gè)過(guò)程類似于通過(guò)字典中的檢索字表查字的過(guò)程。按字檢索是指對(duì)于文章中的每一個(gè)字都建立索引,檢索時(shí)將詞分解為字的組合。按詞檢索指對(duì)文章中的詞,即語(yǔ)義單位建立索引,檢索時(shí)按詞檢索,并且可以處理同義項(xiàng)等。中文等東方文字則需要切分字詞,以達(dá)到按詞索引的目的,關(guān)于這方面的問(wèn)題,是當(dāng)前全文檢索技術(shù)尤其是中文全文檢索技術(shù)中的難點(diǎn),在此不做詳述。一般來(lái)說(shuō),全文檢索需要具備建立索引和提供查詢的基本功能,此外現(xiàn)代的全文檢索系統(tǒng)還需要具有方便的用戶接口、面向 WWW 的開(kāi)發(fā)接口、二 次應(yīng)用開(kāi)發(fā)接口等等。結(jié)構(gòu)上,全文檢索系統(tǒng)核心具有索引引擎、查詢引擎、文本分析引擎、對(duì)外接口等等,加上各種外圍應(yīng)用系統(tǒng)等等共同構(gòu)成了全文檢索系統(tǒng)。 畢業(yè)論文 第 4 頁(yè) 圖 全文檢索系統(tǒng)結(jié)構(gòu) 在 圖中,我們看到:全文檢索系統(tǒng)中最為關(guān)鍵的部分是全文檢索引擎,各種應(yīng)用程序都需要建立在這個(gè)引擎之上。因此提升全文檢索引擎的效率即是我們提升全文檢索應(yīng)用的根本。比如在當(dāng)今多語(yǔ)言處理的環(huán)境下,有時(shí)需要給全文檢索系統(tǒng)添加處理某種語(yǔ)言或者文本格式的功能,比如在英文系統(tǒng)中添加中文處理功能,在純文本系統(tǒng)中添加 XML 或者 HTML 格式的文本處理功能,系統(tǒng)的開(kāi)放性和擴(kuò)充性就十分的重要。總體上看:可以先把 LUCENE 當(dāng)成一個(gè)支持全文索引的數(shù)據(jù)庫(kù)系統(tǒng) 。而數(shù)據(jù)庫(kù)索引能夠大大提高查詢的速度原理也是一樣,想像一下通過(guò)書(shū)后面的索引查找的速度要比一頁(yè)一頁(yè)地翻內(nèi)容高多少倍 …… 而索引之所以效率高,另外一個(gè)原因是它是排好序的。 由于數(shù)據(jù)庫(kù)索引不是為全文索引設(shè)計(jì)的,因此,使用 like %keyword%時(shí),數(shù)據(jù)庫(kù)索引是不起作用的,在使用 like 查詢時(shí),搜索過(guò)程又變成類似于一頁(yè)頁(yè)翻書(shū)的遍歷過(guò)程了,所以對(duì)于含有模糊查詢的數(shù)據(jù)庫(kù)服務(wù)來(lái)說(shuō), LIKE 對(duì)性能的危害是極大的。 畢業(yè)論文 第 6 頁(yè) 所以建立一個(gè)高效檢索系統(tǒng)的關(guān)鍵是建立一個(gè)類似于科技索引一樣的反向索引機(jī)制,將數(shù)據(jù)源(比如多篇文章)排序順序存儲(chǔ)的同時(shí),有另外一個(gè)排好序的關(guān)鍵詞列表,用于存儲(chǔ)關(guān)鍵詞 ==文章映射關(guān)系,利用這樣的映射關(guān)系索引: [關(guān)鍵詞 ==出現(xiàn)關(guān)鍵詞的文章編號(hào),出現(xiàn)次數(shù)(甚至包括位置:起始偏移量,結(jié)束偏移量),出現(xiàn)頻率 ],檢索過(guò)程就是把 模糊查詢變成多個(gè)可以利用索引的精確查詢的邏輯組合的過(guò)程 。 由此可以看出模糊查詢相對(duì)數(shù)據(jù)庫(kù)的精確查詢是一個(gè)非常不確定的問(wèn)題,這也是大部分?jǐn)?shù)據(jù)庫(kù)對(duì)全文檢索支持有限的原因??梢酝ㄟ^(guò)一下表格對(duì)比一下數(shù)據(jù)庫(kù)的模糊查詢 [8]: 表 LUCENE和數(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é)果排在前面。 返回所有的結(jié)果集,在匹配條目非常多的時(shí)候(比如上萬(wàn)條)需要大量的內(nèi)存存放這些臨時(shí)結(jié)果集 可定制性 通 過(guò)不同的語(yǔ)言分析接口實(shí)現(xiàn),可以方便的定制出符合應(yīng)用需要的索引規(guī)則(包括對(duì)中文的支持) 沒(méi)有接口或接口復(fù)雜,無(wú)法定制 結(jié)論 高負(fù)載的模糊查詢應(yīng)用,需要負(fù)責(zé)的模糊查詢的規(guī)則,索引的資料量比較大 使用率低,模糊匹配規(guī)則簡(jiǎ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)增加也需要重建索引。 索引內(nèi)容抓取 LUCENE的文檔是由多個(gè)字段組成的,甚至可以控制那些字段需要進(jìn)行索引,那些字段不需要索引,近一步索引的字段也分為需要分詞和不需要分詞的類型需要進(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) 查詢分析 通過(guò)查詢分析接口的實(shí)現(xiàn),可以定制自己的查詢語(yǔ)法規(guī)則:比如: 多個(gè)關(guān)鍵詞之間的 + and or關(guān)系等 并發(fā)訪問(wèn) 能夠支持多用戶的使用 畢業(yè)論文 第 8 頁(yè) 全文檢索和數(shù)據(jù)庫(kù)應(yīng)用最大的不同在于:讓最相關(guān)的頭 100 條結(jié)果滿足 98%以上用戶的需求 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 的作 者: LUCENE 的貢獻(xiàn)者 Doug Cutting 是一位資深全文索引 /檢索專家,曾經(jīng)是 VTwin 搜索引擎 (Apple 的 Copland 操作系統(tǒng)的成就之一 )的主要開(kāi)發(fā)者,后在Excite 擔(dān)任高級(jí)系統(tǒng)架構(gòu)設(shè)計(jì)師,目前從事于一些 INTERNET 底層架構(gòu)的研究。 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 歸檔 /瀏覽 /查詢系統(tǒng),本文的主要參考文檔 “TheLUCENE search engine: Powerful, flexible, and free”作者就是 EyeBrows系統(tǒng)的主要開(kāi)發(fā)者之一,而 EyeBrows 已經(jīng)成為目前 APACHE 項(xiàng)目的主要郵件列表歸檔系統(tǒng)。 Eclipse:基于 Java 的開(kāi)放開(kāi)發(fā)平臺(tái),幫助部分的全文索引使用了 LUCENE 對(duì)于中文用戶來(lái)說(shuō),最關(guān)心的問(wèn)題是其是否支持中文的全文檢索。 畢業(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)的核心。 LUCENE 以其開(kāi)放源代碼的特性、優(yōu)異的索引結(jié)構(gòu)、良好的系統(tǒng)架構(gòu)獲得了越來(lái)越多的應(yīng)用。 LUCENE 定義了一套以 8 位字節(jié)為基礎(chǔ)的索引文件格式,使得兼容系統(tǒng)或者不同平臺(tái)的應(yīng)用能夠共享建立的索引文件。然后通過(guò)與原有索引的合并,達(dá)到優(yōu)化的目的。 設(shè)計(jì)了獨(dú)立于語(yǔ)言和文件格式的文本分析接口,索引器通過(guò)接受 Token 流完成索引文件的創(chuàng)立,用戶擴(kuò)展新的語(yǔ)言和文件格式,只需要實(shí)現(xiàn)文本分析的接口。 6 、 LUCENE 數(shù)據(jù)格式兼容 性 。首先,它的開(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)用的全文檢索引擎。其次, 畢業(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)的能力。最后,雖然 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)合理的選擇。所謂集中式 就是通過(guò)很多服務(wù)器把網(wǎng)絡(luò)資源全部下載到本地,然后做一些處理,為搜索做準(zhǔn)備。 搜索器就是人們所說(shuō)的網(wǎng)絡(luò)蜘蛛 (Web Spider)或者叫網(wǎng)絡(luò)機(jī)器人。至此,完成搜索。 而且一般中文分詞也都是采用 LUCENE 的中文分詞方法?,F(xiàn)在比較普遍的是中文單字切詞、雙字切詞、字典切詞,對(duì)于單字切詞由于其一開(kāi)始的不準(zhǔn)確性就被很多人放棄,最準(zhǔn)確的切詞方法應(yīng)該是字典切詞,匹配方法大致有前向匹配、后向匹配和基于 統(tǒng)計(jì)的匹配。字典切詞則是相對(duì)于詞庫(kù)來(lái)尋找哪個(gè)應(yīng)該作為詞,而哪個(gè)不是,由此也可以知道,字典切詞是比較準(zhǔn)確的,但是由于漢語(yǔ)詞語(yǔ)的不斷變化和擴(kuò)充性,所以現(xiàn)在還要結(jié)合雙字切詞才 可以更好地提高準(zhǔ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ū)ο筇卣鳌? 以下將討論 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í)序。這部分的分析,是深入 LUCENE系統(tǒng)的鑰匙,也是進(jìn)行重寫(xiě)的基礎(chǔ)。現(xiàn)在將圖中的涉及到的流的類型與各個(gè)邏輯對(duì)應(yīng)系統(tǒng)的相 關(guān)部分的關(guān)系說(shuō)明一下。文本流表示了對(duì)于索引目標(biāo)和交互控制的抽象,即用文本流表示了將要索引的文件,用文本流向用戶輸出信息;在實(shí)際的實(shí)現(xiàn)中, LUCENE 中的文本流采用了 UCS2 作為編碼,以達(dá)到適應(yīng)多種語(yǔ)言文字的處理的目的。字節(jié)流則是對(duì)文件抽象的直接操作的體現(xiàn),通過(guò)固定長(zhǎng)度的字節(jié)( LUCENE 定義為 8 比特位長(zhǎng),后面文件格式將詳細(xì)敘述)流的處理,將文件操作解脫出來(lái),也做到了與平臺(tái)文件系統(tǒng)的無(wú)關(guān)性。 圖中的涉及到了多種邏輯,基本上直接對(duì)應(yīng)于系統(tǒng)某一模塊,但是也有跨模塊調(diào)用的問(wèn)題發(fā)生,這是因?yàn)?LUCENE 的重用程度非常好,因此很多實(shí)現(xiàn)直接調(diào)用了以前的工作成果,這在某種程度上其實(shí)是 加強(qiáng)了模塊耦合性,但是也是為了避免系統(tǒng)的過(guò)于龐大 和 不 必 要 的 重 復(fù) 設(shè) 計(jì) 的 一 種 折 衷 體 現(xiàn) 。 查 詢 語(yǔ) 句 語(yǔ) 法 分 析 邏 輯 對(duì) 應(yīng) 于 部分,并且調(diào)用了 的代碼。索引構(gòu)建邏輯對(duì)應(yīng)于 部分。存儲(chǔ)抽象對(duì)應(yīng)于 。 LUCENE 索引文件格式分析 LUCENE 源碼實(shí)現(xiàn)分析的說(shuō)明 通過(guò)以上對(duì)
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1