999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

千萬級FTP搜索引擎數據庫索引的設計方法探討

2008-12-31 00:00:00黃曉梅
考試周刊 2008年11期

摘 要: 本文介紹了基于LINUX操作系統的千萬級FTP搜索引擎(Sparrow Search)的框架結構,著重探討了數據庫索引的設計方法,針對提高索引檢索效率和壓縮比率的問題,本文提出了具體方案并給出了實驗結果。

關鍵詞:FTP 搜索引擎 數據庫 索引

引言

FTP搜索引擎是對因特網上FTP服務器的信息資源進行檢索和管理的一類檢索系統機制[1],數據的檢索過程并不需要搜索整個因特網,只需處理預先整理好的FTP目錄信息數據庫。FTP搜索引擎的功能是搜集匿名FTP服務器提供的目錄列表,對用戶提供文件信息的查詢服務[2]。與相對眾多的WWW搜索引擎相比,功能強大的FTP搜索器并不常見,由此限制了人們對具有大量信息與資源的FTP站點的訪問。實現一個高速、海量、功能強大而又基于Web的FTP搜索引擎將為網絡用戶提供極大方便[3]。

根據搜索引擎的工作原理,可將搜索引擎的實現過程分為三步:在因特網上抓取FTP目錄信息 → 建立索引數據庫→在索引數據庫中搜索排序[4]。本文著重討論建立索引數據庫過程中索引的設計與實現方案。

1. FTP搜索引擎的框架結構

Sparrow Search采用的是獨立型搜索引擎,即擁有自己的索引數據庫,檢索在本地數據庫中進行,并根據數據庫的內容提供相關信息或站點鏈接。圖1是FTP搜索引擎的框架結構圖。

用戶在客戶端使用網頁瀏覽器進行數據查詢,當用戶鍵入查找關鍵字并提交時,Web服務器通過調用CGI程序在索引數據庫中進行搜索。數據采集機器人(spider)自動提取各個FTP站點的文件和目錄信息并按照一定格式和策略進行存儲,從而生成索引數據庫。

2.數據庫索引數據庫的設計

FTP搜索引擎數據庫索引設計由三部分組成:原始索引、壓縮索引、整合索引。

2.1 建立原始索引

建立索引的方法采用倒排表技術,即數據庫的索引被設計成基于單字符(漢字)的倒排表的形式,字符種類的個數決定有多少倒排表文件。每個倒排表文件以某個字符(英文字母或漢字)命名,保存的是該字符(英文字母或漢字) 在數據庫中每次出現的位置信息,由于有些字符無法在操作系統中作為文件名,如星號、冒號等,Sparrow Search中規定了只有漢字和特定字符,如:0-9、a-z、A-Z可以被索引。雖然在支持中文的LINUX 操作系統上漢字可以作為文件名,但考慮到兼容性問題,沒有直接用漢字作為文件名,而是把漢字的16位編碼轉換成為4位16進制無符號數來作為文件名。這樣在不支持漢字的LINUX 操作系統上也能夠處理漢字的索引問題。

索引結構如圖2所示。每條索引由32位(4字節)構成,其中高24位用于表示該字符所在的記錄編號ID,低7位用于表示該字符在記錄內的位置偏移量,中間一位暫時保留,以備后用。

當用戶檢索FTP目錄信息時,希望得到一類文件,而不是一種文件。如用戶希望查找所有圖像文件,需要用戶輸入圖像文件的擴展名并不方便,因此可在服務端對文件進行分類,將FTP中的文件名分為為圖像、視頻、音樂、文檔、程序等,將其分別進行索引,有利于提高檢索效率。

大多數FTP服務器上文件名(不含擴展名)或目錄名會采用過于簡單的字符表示,但用戶檢索時無法從信息量較小的字符中檢索希望得到的信息。如目錄結構/office2000/a/b.exe,僅僅對a和b.exe做索引沒有太大意義。在Sparrow Search中,除了文件名本身以外,對其若干外層目錄名也編上索引。但增加索引量又會使數據庫索引文件劇烈增大。經過實驗,每增加一層目錄名的索引量,索引文件的大小會增加60%甚至更多。Sparrow Searc采用的方法是:一旦發現文件名的長度過短就將其外層目錄名編入索引。同樣,若外層目錄名仍過短,再將其外層目錄名編入索引,……極端情況下,對文件的全路徑編制索引。

2.2 索引的壓縮存儲

增加索引的字符數量會使索引文件的大小成比例增加,即便是只對文件名本身索引,海量的原始信息量仍對索引文件的存儲空間構成了極大的威脅。經過實驗,在不壓縮并對文件相鄰外層目錄編入索引的情況下,1千萬條記錄所生成的索引文件的大小超過600MB。考慮在數據庫中的數據有這樣的規律:大量名字相仿的文件記錄會集中在一起,因為它們都被放在服務器的同一個目錄下,這意味著文件名中字符或漢字會重復編入索引。

對比原有索引結構,可以將高16位相同的索引編在一起,用2個字節保存,稱為基底Base;再用2字節保存高16位相同的索引的個數,即偏移總數N;用2個字節保存原索引結構中的后兩個字節的內容,即偏移。索引壓縮方法示例如圖3所示。

假設用四個數字表示索引的四個字節,則存儲圖3左邊的索引信息需要32個字節(8*4Bytes=32Bytes);用上述壓縮算法進行存儲則只需要24個字節。

從例中不難看出,當索引文件越大,壓縮比就越高。當數據庫規模超過萬條記錄時,壓縮比一般就能維持在50%以上,在測試中最高達到60%。這樣存儲一千萬條索引記錄需要約300MB空間。

2.3 索引的整合存儲

出于對檢索性能的考慮,把眾多的倒排表索引文件整合成一個大的索引文件,再將這個文件放入內存中,這個過程就是索引的整合存儲。

整合索引需要解決兩個問題:

(1)怎樣在整合后的文件中定位某個倒排表文件。針對該問題可以另外設置一張表格,稱為索引表頭,索引表頭中指明了每個字符或漢字對應的索引文件大小和在整合后的文件中的起始位置即偏移。

(2)如何解決索引表頭的存儲問題。有三種方法:其一是存放在整合后的索引文件頭部,其二是存放在整合后的索引文件尾部,第三是另外單獨存放在一個文件中。Sparrow Search采用了第三種方法。

Sparrow Search索引文件的表頭實際上是一個數組,長度為64K,每個元素由8個字節組成(即兩個無符號長整型數),前4個字節指出該元素代表的索引文件的大小,后4個字節指出其偏移量。所以索引表頭永遠是512KB大小。

索引字符或漢字編碼(最高16位)被用做下標在數組中索引定位,即把數組當成一個無沖突的哈希(HASH)表。雖然所有字符或漢字不會都被索引并且會造成存儲空間浪費,但卻可極大地提高索引訪問速度。

3. 緩沖區技術

數據庫索引生成器包括索引生成、壓縮、整合三部分,程序對于磁盤操作全部采用“預讀取+延遲寫”的策略,即在程序中開辟讀、寫緩沖區。緩沖區一旦發生欠載,立即讀盤;發生過載,立即寫盤。這使得整個數據庫的建庫、壓縮及整合過程的速度比直接寫盤的策略提高了幾十倍:在未采用緩沖區技術以前,處理7萬條記錄就要耗費1分鐘20秒以上,而采用緩沖區技術以后,7萬條記錄的處理時間小于3秒鐘。

4. 結束語

本文介紹了Sparrow Search引擎數據庫索引的生成方法,討論了遇到的各種問題,并給出了解決方法和實現方式。Sparrow Search已在我校校園網上使用,搜索速度快,準確率較高,范圍較廣,既方便了校園中廣大用戶的檢索,又節省了費用,是廣大師生較喜愛的一種引擎。

參考文獻:

[1]印鑒,鄒勝.一種分布式搜索引擎設計.計算機科學,2001,28(10):74-77.

[2]陳華,王繼民, 韓近強等.互聯網上FTP文件的分布特征及啟示.計算機工程與應用,2004,1:129-137.

[3]陳華,羅昶,王建勇等.基于Web的百萬級FTP搜索引擎的設計與實現. 計算機應用,2000,20(9):68-71.

[4]沈賀丹,潘亞楠,邵良杉.關于搜索引擎的研究綜述.計算機技術與發展, 2006,16(4):147-149,152.

主站蜘蛛池模板: 91青青视频| 黄色一及毛片| 成人永久免费A∨一级在线播放| 91丝袜乱伦| 91精品国产综合久久香蕉922 | 凹凸精品免费精品视频| 天天综合亚洲| 欧美有码在线| AV网站中文| 免费看久久精品99| 呦女亚洲一区精品| av一区二区三区高清久久| 久久永久精品免费视频| 国产精品成人一区二区不卡| 亚洲一区二区三区麻豆| 国产69精品久久久久孕妇大杂乱 | 久青草网站| 久久亚洲综合伊人| 全部免费毛片免费播放 | 在线观看欧美精品二区| 欧美精品综合视频一区二区| 久久99这里精品8国产| 精品自窥自偷在线看| 国产jizzjizz视频| 自拍中文字幕| 欧美在线网| 亚洲Aⅴ无码专区在线观看q| av手机版在线播放| 美女潮喷出白浆在线观看视频| 国产成人精品视频一区二区电影| 人妻中文久热无码丝袜| 国产chinese男男gay视频网| 亚洲日韩Av中文字幕无码| 日韩精品高清自在线| 国产91色在线| 亚洲精品天堂自在久久77| 色综合五月| jizz在线观看| 亚洲人妖在线| 日韩欧美国产三级| 欧美va亚洲va香蕉在线| 精品视频一区在线观看| 日韩在线2020专区| 人妻21p大胆| 五月天综合网亚洲综合天堂网| 欧美亚洲第一页| 欧美亚洲一二三区| 国产精品成人一区二区不卡| 免费又爽又刺激高潮网址 | 成人福利免费在线观看| 国产JIZzJIzz视频全部免费| 看av免费毛片手机播放| 国产一在线观看| 国产精品内射视频| 国产成人精品一区二区秒拍1o| 欧美国产日本高清不卡| 国产一区二区精品高清在线观看| 五月婷婷综合在线视频| 午夜啪啪网| 亚洲天堂网视频| 国产一级在线观看www色 | 欧美在线一二区| 亚洲精品动漫| 成人午夜免费观看| 日韩人妻无码制服丝袜视频| 国产综合精品一区二区| 欧美a在线视频| 大香网伊人久久综合网2020| 久久天天躁狠狠躁夜夜2020一| 国产亚洲视频在线观看| 亚洲视频欧美不卡| 一级看片免费视频| 国产成人AV男人的天堂| 国产在线自乱拍播放| 欧美日韩另类国产| 天堂成人av| 国产毛片高清一级国语| 无码精品一区二区久久久| 亚洲视频免费在线| 日本精品αv中文字幕| 91精品国产自产91精品资源| 免费毛片在线|