FTP
Implementation and Analysis of an FTP-specific Search System
Tong-Hong Kuo,
Yukon Chang
[email protected], [email protected]
! " # $ % & ' ( ) * + ,- . / 0 1 2 3 4 5 6 7 89 : ; 1 2 < 8=>? @ A BC D E F G 8HIJ K L M N O P Q R S* + > T U V W X Y Z [ \ ] ^ _ ( N O - . ` a b c* d " e f g h i jk l m n X o * + p q r s Q R t u =v ( w x y ,z { | } ! o * + 1 2 ~ 8 0 x y ; 2 * + O Q R N f K C Q R Q R = 1 2 FTP Q R =Abstract
As the capacity of computer storage increases rapidly, building a large FTP server with RAID technology is neither difficult nor expensive anymore. However, we need to have an efficient retrieval method that provides a full-text search to allow the users to quickly locate what they want in such huge amount of data. Search methods that work fine on a small data set may consume too much computing resources to achieve acceptable performance when searching large databases. In this paper, we discuss data indexing techniques tailored for FTP servers and study the structure of documents, the format of indexed data and the method of searching. These efforts result in the implementation of an efficient file search engine on PC-class computers.
Keywords: Indexing File, FTP Search Engine,
Keyword Ranking.
1.
P @ @ " g h 10Gbps ¡ ¢ ! £ ¤ ¥ ¦ § W ¨ ; © ª S * « ¬ ' 5 ® ; © ª ¯ ~ 8u ° ¦ § ± { = Q R ² ³ k ´ µ ¶ ° · L M 1 2 ¸ ¹ º »7 89 ¼ ½ · ¾ ¿ HIL M À { ½ · K Á Âà W Ä Å Æ Ç È =É¥ Ê Ë Ì Í 7 89 Î Ï Ð · Ñ Ò ¯ · Q R Ó ¾ h ¦ Ô Õ Q R =& Ö × Ø 0 A Ù Ú ~ 8Google1 2 ¾ ¿ A r Q R St u o Q R È Webo Q R HN O ¦ =Î » ÛFTP Ü Ý ÞSß K * + à ,W á â ãä O Î ß © ª åæ ç WebQ R è ß É Sß K é r M Û7 89 & ê ë ì ¾ ½í î ï e f 0 t Ù Ú V ð å] E »D ñ Q R ò á SK é ,Ä h Æ Ç · óô ] © ª = ï & SWebo : ; 1 2 å0 õ Í ö ÷ ° W X ~ 8Û Q R ø '; ù ; ¦ ú û á ü ¥ Q R P d ; r ý : ; 1 2 ,¢ þ L M Ø W 7 89 Q R Q R Þ Î ú = v ( w x y Ü K C 8ÛFTP< : ; 1 2 º »Q R ; r ô Å , * « P Ä R ô ] Q R Q R t u Ñ Ò =2.
Q R ² ³ " 0 ¦ § K í b 8 ¦ § =â ã* + N O Î ß O * + Í ê 0 @ é ¦ ú B± { Þ x y v ( SV ; ,!" #Ö × @ o F $ Q R í ô b 8 ¦ * « = S WebQ R Á % µ · Ã ÉGoogleQ R S1998Sergey BrinLawrence Page
ô ² & ' ; [10],5 h í ~ 8Intered File
* + ö ÷ Q R ú ( ~ 8 PageRank ) c ¥ Q R È Ñ Ò = SFTPQ R Á % * 0 GaisFTPLocate SmartArchie =GaisFTP5 6 ¥ + r , - P C . / · FTP A Q R û á Û Gais 01 2 Q R < á ñ M ÛK 3 Î Z s : 4 5 B 6 7 8 9 · ó< Q R Ý : 0 ; < = FTPLocate[2]° û 3 = > Â?
@ A ô ² ³ ¸ B C ¹ D < Í A FTP Q R 5 6 ¥ · ó 1 2 0 1 3 4 ± E ÞF G HIô ` a H I 5 J 1 2 t á = ( Q R û á ° ~ 8
Glimpse É1 2 / 0 Î 2 t u K L Í
F G û á 'W ~ 8“win;zip”â ã win M zip · ó_ ( e f 1 2 ,; ° N O ë < K = 2000 ,P Q R S 5 Å 0 Ô Õ ¦ F R < T U ? Q R (SmartArchie)[11] V 7 89 E @ é W ! V ð 4 X ¤ Y < · P d é Z r ; [ Þ7 89 á Î î \ · à W Ù Ú @ é " #r Ä R h ¦ Ø v ÉW ! ] ^ ¥ ± E ~ 8L u Ø _ M ý 7 8= Sù N Z Û,; ; ( Î '` N ß É K C a H K C a H ô b c d ; eW X ~ 8f ¸ g h i ÂÅ K C j K C a Hk& ° K Y IÂ: 0 ä l m n ,; HIY o ï Î ß c d ¾ & ; e=v ( ' M ,; ù K Ù X P p 0 ¦ § Í x y =N ,1997q ¤ r s t ² & ¥ PAT-Tree-Based[6],; u W Sv ( ¦ ,; ; ,l w ¾ ¿ ,; < u x D ñ y ,; z { | = = ST U ? l w ì H} ~ ¼ ½f ,Ø - . 7 8,; ù < ' ~ ¼ ½f [12]* G z 7 89 l ¿ w z Ç 7 89 ¼ ½ ) Å < u ¾ & < ù µ 0 W á b Ç Ö É 7 89 ì H 5 7 89 ¼ ½t u =
2003Hiroshi YamamotoD î M n -gram full-text indexing method[11] ¥ õ Í | } º » @ ¢ N O ä Î ß ú Éa f < ¨ 2 MQ R t u < =
3.
S ! ,S ; & õ Í 0 ¦ § · óN · ó â 㥠© ª · ó© ª w B© ª q ó B 0 ¦ M ¡ ; " #N 8¢ =S£ 3 ã 0 ¤ ¥ * « ¦ ¬ Ä Å ô ] ° ¦ § a H =v ( w x y ° § Û² ³ " ¨ : ; 1 2 0 ¸ B C ¹ D * + z ©MySQL á Sª « H Ir ¬ i m n * + , Å Æ Ç 7 89 F G * + g h R Ä ( V ð Ö = É¥ 5 6 7 89 Q R ! o r - . ® ¾ ¿ í ¯ 2 < y ° k × ¯ * + F G < =±1,² Õ í ¯ * + y b ³ > â ã & ÂV u · ó 2 < y »>k±2* É7 89 ´ Å F G SQ R E »× y Q R * + h V ð ³ >=V ; !î ÂÉV µ C Á % " # a. & ÂV b. ¤ N O c. · ó < 2 d. 7 89 F G < "!#$ %'&()*,+-. +/0 1 Query 23.1
& N O 0 ¦ § Í N O â ¶ w 3 ¯ B° · ¯ z 3 & =w 3 ¯ W X º »findB° ls¸ ¹ Y Z 1 2 & k & · ¯ z 3 & * v FTP º» ,» n ¥ LIST¸ ¹ Ø W ~ 8£ C ¸ ¹ G ¼ ½ N O Ö ¾ A : A & â 㥠? ¿ À >Á ü ( < ý à W E Rsync[1]º » · ¯ < & =& w x y ß H K L · ¯ w 3 N O Î »Ö × !1 2 A À4 S w 3 ¯ z < 1 2 v ( Ä ~ 8 w 3 ¯ E ls –lR¸ ¹ : A & = S & í ¾ ¿ ÂV !* + k * + z , & * + â ã Å · ó · ó Æ ? (Ç ÂÉ*
+ à Y È ) ÁÂ >=
3.2
ÛÄ ~ 8 · ó¾ ¿ 1 2 å0 ¦ § Í O ë µ F $ Ã É · óe f s É ² Õ ¡ 8 ¢ Ý Þjk · óÀ° HÊ Ë b H IÌ Q R Í $ = v ( 'á · óX ý Q R * « Î ° © ª 8¢ B° Æ : W Q R î Ï = & ; B° © ª Ð Ñ ¸ ² b Ò § Û B° Ó Ô >O ô ] * « E F æ É¥ Ð Ñ < © ª Ê Õ Ý » O =· 0 RedHat / Fedora /
CentOSLinux DistributionÐ Ñ RPM ô 8
XML Package Metadata O IETF (Internet
Engineering Task Force)ô RFC; < RFC
Index O 0 + r · ,; b Ò Ö,; © ª [ × G 8 00_index.txt q Z O ü ( < ý FreeBSD Debian à 0 N l 0 O W 6 1 2 < 8= SÂV s ä F $ O í !* + Û* + z ,Y £ 3 Ø Ù · óí W X Ú 0 t 7 89 Q R t u ( W X º< 7 89 Û ù 6 7 Î - { Ü ` Q R H I=
3.3
0 ¥ o K Ý ô ¤ * + í î Ï · ó < [ ÞÞ W 5 6 7 89 ÉF G < 8=~ 8x HIL M N O 7 89 ô V g F G c Q R ! æ ¦ § ß 0 Þ à Q R t u Î =É¥ 5 6 à ÞQ R w x y ,7 8 · ó Ç á N O ¾ ¿ 2 = K Ic d ¬ â 㥠,â ; : ; 1 2 ,É¥ Q R t u æ !HI ù w =w x y G 8'±3ô ã < q Z ,â ; Âä < HI å N f ¾ ¿ 2 =® !HI,,; â ; i f ¸ P Â: ¾ ¿ =N ,â ; Á % æ Z i ÂSK C X â ; Hç HÆ Ë è 2 b Y é HI,X Æ Ë É,ù ë â ; Hb Ç Ã W ê ë C ú Î k& ,; Á % * G 8µ a ì X K C ,; HÉa å Î Sí ¯ ¾ ¿ E | ù = = £ í ° ,; z æ v Î ß ,; q óB° î ï 8 & Î ß É¥ Q R ÞS í ¯ full-text indexH Î G 8ð ® ù í È ¾ ¿ & ° Ç Query combinationQuerypre-parserP W X S z w Ú î V Î ± 2 à W Q R h 7 89 ô ] * « = 3 !!!! S Full-text Index* + ¤ N Z w x y ° ~ 8MySQL£ ñ · Open Source* + z É § ò ( ~ 8N Full-text Index P ¾ ¿ 2 =v É
MySQLFull-text IndexÄ M Æ Ë ASCII¾ ë Æ Ë å ( e f [ \ Í + ] ^ ô X w x y ,ó Full-text Index ParserC ¹ D G 8× ; ô Õ q Z , â ; Â ä < H I å N f P ¾ ¿ Multi-Bytes (ã,Áô )< ù = !MySQLC ® Àá â ; 5 J É01 M Í + ¾ ¿ : ; 1 2 á ñ = ü ( < ý SC ¹ * + ,æ Å ¦ § Í # 1 2 8H(stopword)'theBinÌ 1 2 o æ 0 ¦ § Í Ñ Ò v ( S¤ 2 »>,æ l w !£ 3 stopword»õ Î y 2 ö ÷ * + » ú ) & 1 2 t á =
3.4
So K Ý ,Ø Õ ¥ 1 2 í ¯ f C Ú ø ù ° 7 89 ' F G N O =ú » 7 89 Î ° # F û ü 7 89 M © ª · ß 0 - Âý þ Í p ~ 8 ¦ P ¾ ¿ Q R j k Ä ° q a ² Õ ] ^ û á c d =~ 87 89 ô ¼ ½F G c ¾ ¿ s : L M Z F G Î h Æ Ç ] ^ © ª _ ° º »7 89 ¼ ½ c § ,å W á u Å Á % =ø '7 89 Q R “CuteFTP Pro,; ”H W á ! ,Y ,; p ß 0 Ú v “”£ C H Æ Ç 3 æ Ú >~ 8ù W X ( Æ v HQ R Î h T U ² = S7 89 F G ,ô 7 8,; ù N f ¤ · ó 2 N O Î ß ° G 8 Libtabe ô » n < ,; z [7]¾ ¿ f ù Å â ãS z r W á Å ù b Ç (ãa H )& ù È ! h í ; ô Õ < Â) c=ú ¼ ½K HIE » í W â ; C ÉM& ,; HHÉnµ W á ,; ù È C Én× n( +1) 2 í ,; C (ã a H )ÉN ,â ; * ÉI=M +NS ÉF G c í Ñ Ç H * É1 2 HI í L M ,C D * É ,< HIÑ Ç v ( W ^ V O I H Ratio Hit_ = (1)S±4 ,ú 7 89 ¼ ½< F G É“CuteFTP ,; ”W X î å S1 ~ S5¯ Â: X S i * + z ,Full-text Index L M W X h ,C H ( ) c Å , L ø Hit _Ratio ~ 8 Ratio Hit _ ¼ Å È = CuteFTP 中文版 Query Segmentation CuteFTP 中 文 版 CuteFTP Pr o 6 0 B ui l d 05 24 2004 2 官 方 繁 體 中 文 版 中 文 M = 1 n = 3 N = 4 H i t _R a t i o = 5/5 = 1 S1 S2 S3 S4 S5 中 文 D1 D2 D4 D5 D3 4 ï&oÕfæv“,; ”È C,;H ¥45± { Þ ¼ Å â ã ( H I e Û“ CuteFTP” È = É ¥ × ; ô Õ î Ratio
Hit _ N O W~ 8Term Vector Theory
Keyword Weights N f[9]P v S K n* + ,0 Wî N Å ¡ n* + ,ô 0 C ^ ¿ ± Wi.localÅ Í * Wi.local kS: Á * + ,W^ ¡ ¿ ± Wi.globalÅ Í * Wi.global> =¾ &^ ¡ ¿ ± local i global i i W W W = . × . = &( N fb c E | ú æ ô Xw x y , ~ 8 u i  ± { Þ N fà à Šu ¦ M Û u 0 1 æ Ý Þ =Q R H ! ± { Þ è É - { Å &N * è É ì { 5 Q R ú Î Þ =v É ä C u 0 3 ¦ § Ú 0 3 om &7 89 ¼ ½ F G WX Åê ë C ' È a a À ! u Å µ è É - { Å å Wá ¼ Å È» Í =ê ! £ 3 ÂÉ K É æ ± { Þ K è É - { Å K * É ± { K è É ì { Å =&w x y ,G 8 k -means Ó c f[5]P Â! ê ë C ÂÉ N ,K C < I u ¦ M Û ý K p ° L æ > g h æ ¨ Ât È=ú 7 89 ¼ ½ F G c E» ù u ÂV ( ÂíW AB AÉ ± { Þ æ - { Å K BÉ ± { Þ æ ì { Å K XV É 7 8k-means Ó c f!  AB < N f 1. ! C î u > k = 2. ! u µ > µ Â: » É AB , = 3. ) c C u C, ' È¡ u A< , æ > Æ É A ! < * Æ É B= 4. ) c AB" # Â: É AB < î , = 5. ± E $ % 3&4 Ù h , Î ¯ É ' à W h ÂíAB= 5 k -means ' ±5 ô ã A C( ) É Aiè É - { Å ( ) C É XCkB C( ) É Bjè É ì { Å ( ) C É Y C=S MySQL Internals Manual[8]5 h É ¥q ¿ ± ) c CAi# 1 X ÂkBj » É 1 Â=v( W* V 3 O ^ Â É î Ï Y Y X X Score Full = × + × = + × 3 1 1 3 1 1 _ (2) 3 _ _ _
_ hit Count of Bhit
X A of Count Score= + (3) Score Full_ É ð  µ  Score* É ,+ ) ÂWX¯! Score, oThreshold8X» õ » È5 Æ Ç L ø g h 7 Q R t È= ø h Î ß F G c Q R ô ] HI0 0 ª&¼ Å ÈØ0 Wág h -éSë ì C ÂéHp ± î Q R ¦ § ` a * d - a 7 89 HIv( ¤ F G 3 4 ° ¦ § ± { =ï&7 89 ¼ ½ F G c WáÄ Ä À 0 K Cg h < B ° . / 0 - . É £ 3 T U ¤ K C1K ö ÷ » Û) 2 t áØW ± E Q R t u =w x y ,G 8Ai BjE» u í È! H I : Á I Ú SK 3 í( 4 â ;H I : Á 5 É > 9 E MD5 Ê DWh K C1K 2 ! £ 2 [ =' ÈV Q R ØW^ ß í MD5 * è É ¦ ß F G Þ Ù Ú * + ¬ 6&Î ¾ ¿ Q R w ' ( WX_ Q R HI ¾ Q R t u =± 6,É F G < MD51 K ) c ã m ±ô ø É “ cuteftp,; ”
“,; CuteFTP” CS m o¦ ß À ° . / 0 F G r E ( N O W ^ ß É “ 7f6efcb8171920df92631207dd351ab5”MD5 X( 1K ß K % r ± E Q R T U ² = MD5 7f6e fc b 8 1 71 9 2 0 d f9 2 63 1 2 0 7d d 3 51 a b 5 c u t e ft p 中 中 文 文 版 A1 3 0 8 1 7 8 6 4B3 1 5 8 4 1B2 2 0 9 7 2B4 1 3 9 2 3B1 Q u e r y S e g m e n t a t i o n & C l u s t e r i n g c u t e ft p 中文版 中文版C u t e F T P 6 MD5
4.
w x y Û n 7 !(http://ftp.isu.edu.tw)o ! 0 8 Intel Pentium
4 2.6GHzCPUÔ y 8GB4 9 ª ü : É Linux 2.4.25@ é ! © ª É Apache 1.3.36* + z ! G 8î w x y 5 Å< ù N fô ó » MySQL 5.1.19-beta P 5 6 Í 1 2 û á=vH I = ¦ § Í G 8PHP É z { > O ) ê = ¡ ! , ô Ç É 3320.26GB n g 5,414,639nE í
) 0 236,275n SH ; ,&full-text index
, 8< 770MB g I= Frequency Distribution 0 1 2 3 4 5 6 0 200 400 600 800 1000 Frequency Interval (x10) L og10 (T im es C ou nt ) Frequency distribution 7 !!!! """" #### ±7É Å u i IÂ= ±X> W & ° Å u i IX10a É K Ci I 100W & Å Å É 1000~1009 < IkY > * W & ? Û( u i I C É ¥ö ÷ @ w » S( XLog10É a A ±= ) È, Å u Í S 10000 XV v( Ä ! u É 10000 XV ±A B h Â= ±,= Â= ±,W $Í Å ? S 0&100 i I¦ § Ç ~ 8oK e ô " # < u ÂfP » õ ¼ Å È= É ¥ Q R ô HIw x y G 87 89 C EQ R » P ¾ ¿ D E â ã ,â ;è | b F G c B ° : â ;Î s : Æ Ç F G c # 0 ¦ § Î 2 t È=&Q R t u N Z Í F G Ø# áSK q r s =' ±8ô ã F G H IÉ 2006 6J21Á a Á 7 89 C EV » queryô K a H IL ü ± E queryT U Ç 0 243n* + E
HI¼ íA B & kM G H I* É ¡ query
E cache3 4 ô K a < Q R HI= HIH IP N 3 4 W O 5 J Q R t u Í T U # á ! Q R HIP» Q Û0.1q XV = Performance 0.001 0.01 0.1 1 10 100 T im e (s ec on ds )
Search Search (cached)
8 $$$$ """" %%%% &&&&
± 9 É G 8,â ; è | H I F G ÈS y Î s : ¦ ß T U V # á! µ ¦ Ûµ o¯ =± 10 * ° : â ;F G Q R T U ¬ ±,W$packagepackÎ ¦ Æ V î Ï u i ÂÓ c fpackage Å L ø ¦ M L N H I Æ Û { Å b í î ï W X Ä Å“ Chinese language pack for OpenOffice”=
10 “Openoffice Chinese language
package” Û7 89 M Û© ª Q R áñ R Î S Ì Q R È0 T Í $ É ¥ ¨ U Q R t w x y ,ú Q R D V W { º » Q R &V ð © ª ô 0 E Q R Ⱦ &V ð Y I# è É û v( É ¥ Q R t u » n ¥V O times Search times Donwload rate Hit _ _ _ = (4) ±11 ,O ã r É È -Á X X ) ÈY K H IÉ a Á Q R Y Z * É E § Q R Ⱦ ¿ V ð ± 12 W$ rate Hit_ , W Q Û60%Xo= Û Ð Ñ Ñ Ò S7 89 6 F Q R T U V åæ[ * + \ Ð ½ * + z ,B v K HIë . © ª * Å & Q R , È_ É ª H INP å 0 ¦ § > ú R ø Þ =
Count of Search and Download
0 500 1000 1500 2000 2500 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 Search D ow nl oa d Search Download
11 ,,,, ---- ,,,, ---- %%%% &&&&
Hit rate 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.91 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 Day H it ra te Hit rate
12 .... %%%% &&&&
5.
w ' ;ô 5 Å< Q R " s ( b 8 Ûn 7 ! (http://ftp.isu.edu.tw)E @ ÈÂV ~ 8: ;1 2 Û Q R o 0 ¦ § Î 2 t ÈL 3 x pattern L M N O Í ¥ Ú Í Þ &Q R t u ÈØ Ç T U ¯ Hit_rate ) H IP NØ] P » T U v( w x y 5 ÅN f 8Û ! < Q R oWg h Î 2 t áWÚ [ 7 u =[1] Andrew Tridgell,. “ Efficient Algorithms for Sorting and Synchronization,” PhD thesis, Australian National University, Apr. 2000 [2] FTPLocate, http://turtle.ee.ncku.edu.tw/ftplocate/ [3] GaisFTP Q R ,
http://gais.cs.ccu.edu.tw/GaisFtp/
[4] Hiroshi Yamamoto, Seishiro Ohmi, and Hiroshi Tsuji, “ Experimental simulation on incremental three-gram index for two-gram full-text search systems,” IEEE International Conference on Systems, Man and Cybernetics, vol. 5, pp. 4846-4851, Oct. 2003
[5] Jiawei Han and Micheline Kamber, “ Data Mining: Concepts and Techniques,” Morgan Kaufmann, pp. 349-351, 2001
[6] Lee-Feng Chien, “ PAT-Tree-Based Keyword Extraction for Chinese Information Retrieval,” ACM SIGIR Forum, , pp. 50-58, Jul. 1997 [7] Libtabe – A Chinese character/word handling
library, http://libtabe.sourceforge.net
[8] MySQL Internals Manual–Full-text Search, http://dev.mysql.com/doc/internals/en/full-text-se arch.html
[9] Raymie Stata, Krishna Bharat, and Farzin Maghoul, “ The term vector database: fast access to indexing terms for Web pages,” The International Journal of Computer and Telecommunications Networking, vol. 33, pp. 247-255, Jun. 2000
[10]Sergey Brin and Lawrence Page, “ The Anatomy of a Large-Scale Hypertextual Web Search Engine,” Proceedings of WWW8, Brisbane (Australia), pp. 107-117, Apr. 1998 [11]Q R S , “ 0 Ô Õ¦ F G < T U ? Q R ,” ,P * « = > x y ô ^ t ' ;, _ + 89 [12]` a : , b c w , d e J , “ ~ ¼ ½ f f g,” Apr. 2002