¢x ½s¿è«Ç ¢x »O¤j­º­¶ ¢x ­p¤¤­º­¶ ¢x
²Ä0010´Á ¡E 2009.9.20µo¦æ
¾ú¥v¦^ÅU ­q¾\/¨ú®ø ®Õ°ÈªA°È ±MÃD³ø¾É   §Þ³N½×¾Â ±ÀÂË¥Zª«
­º­¶ >§Þ³N½×¾Â
§Þ³N½×¾Â

§K¶O¶}©ñ­ì©l½X·j´M¤ÞÀº Lucene²¤¶

§@ªÌ¡G´¿«O¹ü / »OÆW¤j¾Ç­pºâ¾÷¤Î¸ê°Tºô¸ô¤¤¤ß¸ê°Tºô¸ô²Õ

¥»¤å°£¤F»¡©ú¬°¦ó¾Ç®Õ­n¦³¦Û¤vªº·j´M¤ÞÀº¤§¥~¡A¤]´£¨Ñ¸Ñ¨M¤§¹D¡C±q²³¦h§K¶Oªººô¸ô·j´M¤ÞÀº¤§¤¤¡Aµ§ªÌ¬°¦U¦ì¬D¿ï¥X¡uLucene¡v³o­Ó·j´M¤ÞÀº¡CLucene¥¦¬OApache³nÅé°òª÷·|[1]ºX¤Uªº¤@­Ó¶}©ñ­ì©l½Xªº¥þ¤åÀ˯Á¤ÞÀº¡C¥Ø¦a¬O¬°³nÅé¶}µo¤H­û´£¨Ñ¤@­Ó²³æ©ö¥Îªº¤u¨ã®M¥ó¡A¥H¤è«K¦b¥ô¦ó¤å¥óÀɮרt²Î¤¤¹ê²{¥þ¤åÀ˯Áªº¥\¯à¡C

­I´º
¬JµM¦³¤FGoogle¡BYahoo©ÎBingµ¥°Ó·~·j´M¤ÞÀº(Search Engine)¡A¾Ç®Õ©Î¤½¥q¬O§_¦³¥²­n«Ø¥ß¦Û¤vªº·j´M¤ÞÀº¡Hªº½T·|¦³¡A¦]¬°³o¨Ç§K¶Oªº·j´M¤ÞÀº¡A¤@¯ë¬O¥Î¨Ó·j´M¤½¶}¤å¥ó¡A¹ï©ó¤½¥q©Î¾÷Ãö¤º¤£¾A¦X¥~ÅSªº¤å¥ó©Î¾÷±K¸ê®Æ¡]¦p·|ij¬ö¿ý¡A¤½¤å©Î³øªíµ¥¡^¨Ã¤£¾A¥Î¡C·í¤å¥ó¶V¨Ó¶V¦h®É¡A¦p¦ó§Ö³t§ä¨ì¥H«eªº¾ú¥v¸ê®Æ©O¡A´N·|¬O¥ó³Â·Ð¡C¥»¤å°£¤F»¡©ú¬°¦ó¾Ç®Õ­n¦³¦Û¤vªº·j´M¤ÞÀº¤§¥~¡A·íµM¤]­n´£¨Ñ¸Ñ¨M¤§¹D¡C±q¦bºô¸ô¤W¦³²³¦h§K¶Oªº·j´M¤ÞÀº¤§¤¤¡Aµ§ªÌ¬°¦U¦ì¬D¥X¡uLucene¡v³o­Ó·j´M¤ÞÀº¡CLucene¥¦¬OApache³nÅé°òª÷·|[1]ºX¤Uªº¤@­Ó¶}©ñ­ì©l½Xªº¥þ¤åÀ˯Á¤ÞÀ»¡C¥Ø¦a¬O¬°³nÅé¶}µo¤H­û´£¨Ñ¤@­Ó²³æ©ö¥Îªº¤u¨ã®M¥ó¡A¥H¤è«K¦b¥ô¦ó¤å¥óÀɮרt²Î¤¤¹ê²{¥þ¤åÀ˯Áªº¥\¯à¡C

¬°¦ó¾Ç®Õ»Ý­n«Øºc¦Û¤vªº·j´M¤ÞÀº
¾Ç®Õªººô­¶¦pªG¬O¤½¶}ªº¡A­n¹ï¨ä¤º®e§@·j´M¡A¥Ø«eÁÙ¬O¥HGoogle¬°³Ì¨Î¿ï¾Ü¡]¥«¥e²v³Ì°ª¡^¡A¥]¬A¯¸¤º·j´M¡A§@ªk¬O¦b·j´Mªº¼Ðªº¥[¤Wsite:ºô§}¡A´N¥i¥H°w¹ï³o­Óºô§}¤º®e§@·j´M¡F¦pªG¬O¤£¤½¶}ªº¸ê°T©Î¬O»Ý­n»{ÃÒ«á¤~¯à¬Ýªº¸ê®Æ¡A¨Ò¦p¦b¾Ç®Õ¦³¹Ï®ÑÀ]ÂîÑÀ˯Á¡A»Ý­n»{ÃÒ«á¤~¯à¬Ý¨ì¯d¨¥ª©¤º®e¡B¤½¤å©Î·|ij¬ö¿ý¡Kµ¥³o¨Ç¤º®e¡A³q±`¾Ç®Õ³£­n¥t¥~¦V¥~±ÄÁÊ·j´MªA°È¡C
¹³³o¨Ç¤£¾A¦X¥~ÅSªº¤å¥ó©Î¾÷±K¸ê®Æ¤j³£¦b¸ê®Æ®wùØ¡A©Ò¥Hµ{¦¡³]­p®v¦³¥i¯à±Ä¥ÎSQL»y¨¥¹ê²{·j´M¥\¯à¡AµM¦Ó¡A·í¹J¨ì¥þ¤åÀ˯Á®É¡A¸ê®Æ®w·j´Mªº³t«×©M©Ê¯à´NµLªkº¡¨¬»Ý¨D¤F¡C¦]¦¹¡A¥u­n¬O¾Ç®Õ¦³¤£¾A¦X¥~ÅSªº¤å¥ó©Î¾÷±K¸ê®Æ¡A¦P®É»Ý­nµ¹«Ü¦h¤H·j´M®É¡A´N¦³«Ø¸m·j´M¤ÞÀºªº»Ý¨D¡C

Lucene²¤¶
¦b¤¶²ÐLucene¤§«e¡A§Ú­Ì¥ý¨Ó¤¶²Ð¤@¤U·j´M¤ÞÀºªºµo®i¥v¡G1994¦~¥Ñ´X¦ìStanford¤j¾Ç¥Í¶}µo¥X¹ïºô»Úºô¸ô¤Wªº¤j¶q¸ê®Æ§@§ó¦³®ÄªºÀ˯Á¡A³o­Ó·j´M¤ÞÀº´N¬O¡uExcite[2]¡v¡F¦P®É¡A¦Û¤v´£¨Ñ¦Û®aºô­¶Â²¤¶¯Á¤Þ¸ê°T¡AµM«á¥H¤ÀÃþ¥Ø¿ý¨£ªø¡A³o´N¬O²{¦b¥þ²yª¾¦WªºYahoo·j´M¤Þ撃ªº¯S¦â¡C¦P¦~¡A¦bCarnegie Mellon¤j¾Çªº³Á§J•°¨¤B³Õ¤h¡]Dr.Michael Mauldin¡^³Ð«Ø¤F¤¬Ápºô·j¯Á¤ÞÀº¡uLycos[4]¡v¡F¨ì¤F1996¦~¡A¨â¦W¥v¤¦¦ò¤j¾Çªº²z¾Ç³Õ¤h¥Í©Ô¨½•¨Ø©_©MÁº¸»\•¥¬ªL¶}µo¤F¤@­Ó¹ïºô¯¸¤§¶¡ªºÃö«Y°µºë½T¤ÀªRªº·j´M¤ÞÀº[5]¡A´N¬O²{¦b¤j®a©Ò¼ôª¾ªº¡uGoogle¡v¡C
³oùؤ¶²ÐªºLucene¬O¤@­Ó¤ä´©¥þ¤åÀ˯Áªº¶}©ñ¤u¨ã¡A¥ÑApache³nÅé°òª÷·|¡]¤]´N¬OApache Software Foundation¡A²ºÙ¬°ASF¡^¤ä´©¶}µo¡C Lucene ´£¨Ñ¤F¤@­Ó²³æ«o±j¤jªºÀ³¥Îµ{¦¡¤¶­±¡A¯à°÷°µ¥þ¤å¯Á¤Þ©M·j´M¡C¦bJava¶}µoÀô¹Ò¸Ì¡ALucene¬O¤@­Ó¦¨¼ô¡B§K¶Oªº¶}©ñ­ì©l½X¤u¨ã¡F´N¨ä¥»¨­¦Ó½×¡ALucene¬O²{¦b¨Ã¥B¬O³o´X¦~³Ì¨üÅwªïªº§K¶OJava¸ê°TÀ˯Áµ{¦¡®w¡C

¦p¦ó«Ø¥ß¯Á¤Þ»P·j¯Á
¦p¦ó¦b¦øªA¾¹¤W¦w¸ËLucene¡A¥u­n¦bGoogle·j´M¡¨Java lucene¡¨¡AÀ³¸Ó¥i¥H§ä¨ì¦¨¤d¤W¸Uªº¦w¸Ë»¡©ú¡A³oùضÈ敍­zµ§ªÌ­Ó¤H¦b¦w¸Ë¤Wªº¤@¨Ç¸gÅç¡A¸Ô²Óªº¦w¸Ë¨BÆJµLªk¦b¦¹¤@¤@§e²{¡C

  1. ­º¥ý¶}µoÀô¹Ò­n¥ý¦w¸ËJAVA JDK 1.4.x ¥H¤Wª©¥»(Required)¡A³o³¡¥÷¥i¨ìhttp://java.sun.com/¤U¸ü¡A¤U¸ü«á¦A¦w¸Ë¡C

  2. ¦A¨Ó¨ú±oLuceneµ{¦¡½X¡A½Ð¦ÜApacheºô¯¸[5]§K¶O¤U¸üLucene¡A­Ó¤H¬O±Ä¥Î2.4.0ª©¥»§@´ú¸Õ¡A©Ò¥H¿ï¾Ü¤U¸ülucene-2.4.0.zip³o­ÓÀɮסCµM«á¸ÑÀ£ÁYLucene2.4.0.zip«á·|¬Ý¨ì¤G­Ó­«­nªºpackages:¡@lucene-core-2.0.0.jar¤Îlucene-demos-2.0.0.jar¡A½Ð¥[¤J³o¨â­ÓÀɨìÀô¹ÒÅܼÆCLASSPATH¸Ì¡C

  3. ±µµÛ§Ú­Ì¥i¥H§@²³æªºdemo(¨ú¦Û[6])¡A¦b«á­±²Ä¤@­Óµ{¦¡½X¬OTxtFileIndex.java¡A¥¦¬O§@¯Á¤Þªºµ{¦¡¡A¨ä¤¤D:\\test_lucene\\text_directory¬O­n§@¯Á¤Þªº¤å¦rÀÉ¡].txt¡^©Ò¦b¥Ø¿ý¦ì¸m¡AD:\\test_lucene\\index_directory¬OLucene«Ø¥ß¯Á¤ÞÀɪº¥Ø¿ý¦ì¸m¡C²Ä¤G­Óµ{¦¡½X¬OTxtFileSercher.java¡A¥¦¬O§@Searchªºµ{¦¡¡A³o­Óµ{¦¡­n§äªº¦r¦ê¬OqueryStr = "test"¡A¥¦·|§â¦³¡§test¡¨³æ¦rªºÀÉ®×¥þ³¡¦C¥X¡C


¤¤¤å¤Æ°ÝÃD
¦]Lucene¤¤¤åªº¯Á¤Þ¹w³]ªº§@ªk¡A¬O±N¨C­Ó¦r§@¯Á¤Þ¡A¦p¥H²³æ¥y¤l¬°¨Ò¡G¡u§Ú¬O¥x¤j¤H¡v¡A¹w³]ªº¤Àµü¾¹·|±N¤§¤À³Î¬°¤­­Ó¤¤¤å¦r¡G¡u§Ú¡B¬O¡B¥x¡B¤j¡B¤H¡v¡ACJKTokenizer¡]¦³¤H¶}µoªº¤Àµü¾¹¡^«h·|±N¤§¤À³Î¬°¡u§Ú¬O¡B¬O¥x¡B¥x¤j¡B¤j¤H¡v¥|­Ó¤G¸`ªºµü¡AµM«á¦A§@¯Á¤Þ¡C

·j´M¡u¥x¡v©Î¡u¥x¤j¡vÁÙ¥i¯à¦b¯Á¤ÞÀÉùاä±o¨ì¡A¦ý¬O¦pªG·j´M¡u¥x¤j¤H¡v«h·|§ä¤£¨ì¡C³o­Ó°ÝÃDªº¸Ñ¨M¤èªk´N¥²¶·­«¼g¤Àµü¾¹¡Aµ§ªÌ»{¬°¡u§Ú¡B¬O¡B¥x¡B¤j¡B¤H¡B§Ú¬O¡B¬O¥x¡B¥x¤j¡B¤j¤H¡B§Ú¬O¥x¡B¬O¥x¤j¡B¥x¤j¤H¡B§Ú¬O¥x¤j¡B¬O¥x¤j¤H¡B§Ú¬O¥x¤j¤H¡v³£»Ý­n§@¯Á¤Þ¡A³o¼Ë·|¾É­P¯Á¤ÞÀÉÅܤj¡A¦ýÀuÂI¬O·j´M®É¤ñ¸û¯à§ä¨ì©Ò»Ý­nªº¸ê®Æ¡F¤]¦³¤H»{¬°¨S·N¸qªºµü¦p¡u¬O¥x¡v¡u§Ú¬O¥x¡v¡A·|Åý¯Á¤Þ¨S¥²­n¦a¼W¤j¡B­°§C·j´M®Ä²v¡Cµ§ªÌ»{¬°²z·Qªº¤èªk¬O«öµü»y¤À³Î¡A¦p¡u§Ú¡B¬O ¡B¥x¤j¤H¡v¡A¦ý­n§¹¬ü¦a¤À³Î¤¤¤å¡A¹ê»Ú¤W¬O«Ü§xÃøªº¡Aª½¨ì²{¦b³£¤@ª½¦³µL¼Æªº¬ã¨s§Æ±æ¯à§ä¨ì§ó¦³®Äªº¸Ñ¨M¤§¹D¡C

°Ñ¦Ò¤åÄm
[1] http://zh.wikipedia.org/zh-tw/Apache%E8%BB%9F%E4%BB%B6%E5%9F%BA
%E9%87%91%E6%9C%83

[2] http://en.wikipedia.org/wiki/Excite
[3] http://zh.wikipedia.org/zh-hant/Lycos
[4] http://zh.wikipedia.org/zh-tw/Google
[5] http://lucene.apache.org/java/docs/
[6] http://gznofeng.javaeye.com/blog/196160

ª©Åv©Ò¦³ © °ê¥ß¥xÆW¤j¾Ç­pºâ¾÷¤Î¸ê°Tºô¸ô¤¤¤ß All Rights Reserved.
¹q¸Ü¡G02-33665022 ©Î 3366-5023 ¶Ç¯u¡G 02-23637204
ŪªÌ·N¨£«H½c¡Gntuccepaper@ntu.edu.tw
¦a§}¡G10617 »O¥_¥«Ã¹´µºÖ¸ô¥|¬q¤@¸¹
«Øij³Ì¨Î¿Ã¹õ¸ÑªR«× 1024*768