ÃÑ ÆäÀÌÁö ¼ö : 3224
![]()
|
Facebook Joinc ±×·ì
Joinc QA »çÀÌÆ®
![]()
Tweet
joinc´Â Firefox¿Í chrome¿¡¼ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.
1 °ü·Ã¹®¼
2 ¼Ò°³ syntax °ü·Ã ºÎºÐ¿¡ ´ëÇØ¼´Â ÇöÀç Åë»ç·ÐÀ» °øºÎÁßÀÌ´Ï, ÀÌ°É Åä´ë·Î Àç ÀÛ¼ºµÇ¾î¾ß ÇÒ °Í °°´Ù. - 2008/10/28
À§ÀÇ °Ë»öÀÌ È¿°úÀûÀ¸·Î ÀÌ·ç¾îÁöÁö ¾Ê´Â ´Ù´Â ÀÌÀ¯·Î »çÀÌÆ® Æ¯ÈµÈ °Ë»ö¿£ÁøÀ» ¸¸µé±â·Î Çß´Ù. 3 ÀÛ¼º ÀÌÀ¯
¼Ò°³ ºÎºÐ¿¡¼ °£´ÜÈ÷ ÀÌÀ¯¸¦ ¹àÇû´Ù. ÇöÀç JOINCÀÇ ÄÁÅÙÃ÷´Â ÇÔ¼ö»çÀü, Docbook ÄÁÅÙÃ÷, wiki ÄÁÅÙÃ÷, °Ô½ÃÆÇÀÇ 3°³ ºÎºÐÀ¸·Î ÀÌ·ç¾îÁ® ÀÖ´Ù. ¶ÇÇÑ ÄÁÅÙÃ÷ÀÇ À¯Áö¹æ¹ýµµ ÅëÀϵǾî ÀÖÁö ¾Ê´Ù. ÇöÀç ÇÔ¼ö»çÀü°ú Docbook ÄÁÅÙÃ÷ÀÇ ´ëºÎºÐÀº mysql¿¡ ÀúÀåµÇ¾î ÀÖÁö¸¸ wiki ÄÁÅÙÃ÷ÀÇ °æ¿ì ¸ðµÎ ·ÎÄà ÆÄÀϽýºÅÛ¿¡ ÀúÀåµÈ´Ù.
ÀÌ·¸°Ô µÇ¾î ÀÖ´Ùº¸´Ï È¿À²ÀûÀÎ °Ë»öÀÌ ¸Å¿ì ¾î·Æµµ·Ï µÇ¾î ÀÖ´Ù. °Ë»ö¿£ÁøÀ» ¸¸µå´Â ÀÌÀ¯´Â ºÐ¸®µÇ¾î ÀÖ´Â °Ë»öÅøÀ» Çϳª·Î ÅëÇÕÇØ¼ º¸´Ù ½±°í È¿°úÀûÀ¸·Î ¿øÇÏ´Â ÄÁÅÙÃ÷¸¦ ãµµ·Ï Çϴµ¥ ÀÖ´Ù. 3.1 °Ë»öÃø¸é¿¡¼ º» »çÀÌÆ® ±¸Á¶ÀÇ º¯°æ
Àû´çÇÑ °Ë»ö ¿£ÁøÀ» ÀÛ¼ºÇϱâ À§Çؼ ÇöÀç »çÀÌÆ®ÀÇ °³·«ÀûÀÎ ±¸Á¶¸¦ ¸ÕÀú ±â¼úÇϵµ·Ï ÇÑ´Ù. +--------------------------------------------+
| USER |
+--------------------------------------------+
| |
| |
| |
+--------+ | +----------------------+
| JOINC | | | SQL SERVER |
+--------+ | | +---------+ +-----+ |
| | <-------- | | Article | | BBS | |
| | | | +---------+ +-----+ |
| | | +----------------------+
| | | +----------------------+
| | | | FILE SYSTEM |
| | | | +-------+ +------+ |
| | +------ | | JWIKI | | JCVS | |
| | | +-------+ +------+ |
+--------+ +----------------------+
À§ÀÇ ±×¸²¿¡¼ º¸À̵íÀÌ »ç¿ëÀÚ´Â 2°¡Áö °æ·Î¸¦ ÅëÇØ¼ ÄÁÅÙÃ÷¿¡ Á¢±ÙÇÏ°Ô µÈ´Ù. ³»ºÎÀûÀ¸·Î ±¸Á¶°¡ º¹ÀâÇϰųª Á¤¸®µÇ¾î ÀÖÁö ¾Ê´Ù°í ÇÏ´õ¶óµµ ÃÖÁ¾ÀûÀ¸·Î »ç¿ëÀÚ´Â ´ÜÀÏ Åë·Î¸¦ À¯ÁöÇϵµ·Ï ¸¸µé¾î¾ß ÇÑ´Ù´Â Á¡¿¡¼ º¼¶§ À§ÀÇ ±¸Á¶¿¡´Â ¹®Á¦°¡ ÀÖ´Ù. ƯÈ÷ °Ë»ö¿¡ ÀÖ¾î¼ ¹®Á¦°¡ ¹ß»ýÇÑ´Ù. °Ë»öÀÇ ¹®Á¦¿Ü¿¡µµ ÀÎÅÍÆäÀ̽º°¡ ÅëÀϵǾî ÀÖÁö ¸øÇÏ´Ù´Â ¹®Á¦°¡ ÀÖÁö¸¸ ÀÏ´Ü ±×°Ç ³í¿Ü·Î Çϵµ·Ï ÇϰڴÙ. +--------------------------------------------+
| USER |
+--------------------------------------------+
|
+--------------------------------------------+
| Search Engine |
+--------------------------------------------+
| |
| |
+--------+ | +----------------------+
| JOINC | | | SQL SERVER |
+--------+ | | +---------+ +-----+ |
| | <-------- | | Article | | BBS | |
| | | | +---------+ +-----+ |
| | | +----------------------+
| | | +----------------------+
| | | | FILE SYSTEM |
| | | | +-------+ +------+ |
| | +------ | | JWIKI | | JCVS | |
| | | +-------+ +------+ |
+--------+ +----------------------+
À§¿¡¼ ó·³ ÅëÇÔ °Ë»ö ¿£ÁøÀ» µÒÀ¸·Î½á »ç¿ëÀÚ´Â ´ÜÀÏÀÇ ÀÎÅÍÆäÀ̽º¸¦ °¡Áö°í ¿øÇÏ´Â ÄÁÅÙÃ÷¸¦ ¾ò¾î³¾ ¼ö ÀÖ´Ù. 4 ±¹¾î°øºÎ -.-;
À妽ºµÈ ´Ü¾î¸¦ ¸¸µé±â À§Çؼ Á¶»ç, Á¢¼Ó»çµîÀ» Á¦°ÅÇØ¾ßµÉ Çʿ䰡 ÀÖ´Ù. °í·Î ±¹¾î¿¡¼ÀÇ ´Ü¾î ÇüÅ¿¡ ´ëÇÑ ±âº»ÀûÀÎ ÀÌÇØ°¡ ÇÊ¿äÇÏ´Ù. ¿¹¸¦ µé¾î Á¶»ç´ÙÀ½¿¡ ¿¡¼,±×¸®°í, ·Î¼µîÀÌ ¿Ã ¼ö ¾øÀ» °ÍÀ̱⠶§¹®ÀÌ´Ù. ÀÌ·¯ÇÑ °ÍÀ» °í·ÁÇÏÁö ¾ÊÀ»°æ¿ì ¼öÀº°°Àº ´Ü¾î¸¦ À妽º Çϴµ¥ ¹®Á¦°¡ ¹ß»ýÇÒ °ÍÀÌ´Ù. ¼öÀº´Üµ¶À¸·Î »ç¿ëµÇ´Â °æ¿ì´Â ¾î¿¼ö ¾ø´Ù°í ÇÏ´õ¶óµµ, ¼öÀºÀº, ¼öÀº¿¡¼ µîÀº ÃæºÐÈ÷ ºÐ¼®ÇØ ³¾ ¼ö ÀÖ¾î¾ß ÇÑ´Ù. ÁÖ°ÝÁ¶»ç µÎ°³°¡ »ç¿ëµÉ ¼ö ¾ø´Ù¿Í ¿¡¼¾Õ¿¡ ÁÖ°ÝÁ¶»ç°¡ »ç¿ëµÉ ¼ö ¾ø´Ù´Â °É ¾Ë°í ÀÖ´Ù¸é ÃæºÐÈ÷ ºÐ¼®ÇØ ³¾ ¼ö ÀÖ´Ù.
¿©±â¿¡¼ ¾òÀº Áö½ÄÀº Parser¸ðµâÀ» ¸¸µå´Âµ¥ µµ¿òÀÌ µÉ°ÍÀÌ´Ù. 4.1 ±¹¾îÀÇ Æ¯Â¡
4.2 ÇüÅÂ¼Ò¿Í ´Ü¾î4.2.1 ´ÜÀ§ÀÇ ºÐ¼® ¿ø¸® : ´ëÄ¡¿Í °áÇÕ
4.2.2 ¾îÀý°ú ±¸
4.2.3 ´Ü¾î
ÀÚ¸³¼ºÀÌ ÀÖ´Â ÇüżҸ¦ ´Ü¾î¶ó°í ÇÑ´Ù. ÀÚ¸³¼ºÀÌ ÀÖ´Ù´Â °ÍÀº ¾ÕÀ̳ª µÚ¿¡ ÈÞÁö°¡ ¿Ã ¼ö ÀÖÀ½À» ÀǹÌÇÑ´Ù. ÇÑÆí ±¹¾îÀÇ Á¶»ç´Â ºñ·Ï ÀÚ¸³¼ºÀº ¾øÀ¸³ª, ÀÚ¸³Çüżҿ¡ °áÇÕÇÏ¿© ¾²À̸ç, ¾Õ¿¡ ´Ù¸¥¸»ÀÇ °³ÀÔÀ» Çã¿ëÇÏ´Â µî, ¾ÕÀÇ ¸»°ú ½±°Ô ºÐ¸®µÉ ¼ö Àִ Ư¡À» Áö´Ï°í Àֱ⠶§¹®¿¡ ´Ü¾î·Î °£ÁÖÇÑ´Ù. °á±¹ ±¹¾î ´Ü¾îÀÇ Á¤¸³±âÁØÀº ÀÚ¸³¼º°ú ºÐ¸®¼º¿¡ ÀÖ´Ù.
¿¹) ö¼ö°¡(ö¼ö-°¡) Áý¿¡(Áý-¿¡) °¬´Ù(°¡-¾Ò-´Ù)
¿¹) ¸ÔÀ» °ÍÀÌ ¸¹´Ù. Çѹø ¸Ô¾î º¸¾Æ¶ó.
º¹¼öÀÓÀ» ³ªÅ¸³»´Â µéÀº ÀÚ¸³¼ºÀÌ ÀÖ´Â Çüżҿ¡ °áÇÕÇÏ¿© ¾²ÀÌÁö¸¸, ƯÁ¤ ¸í»ç·ù¿¡¸¸ °áÇÕÇÒ ¼ö ÀÖ´Ù´Â Á¡¿¡¼ º¸Æí¼ºÀÌ °á¿©µÇ¾î ÀÖÀ¸¹Ç·Î ´Ü¾îÀÇ ÀÚ°ÝÀÌ ¾ø´Ù.
¿¹) »ç¶÷µéÀÌ ¸¹ÀÌ º¸¿´´Ù. ¿î¿µÃ¼Á¦µéÀÇ Æ¯¼ºÀ» ¼³¸íÇϽÿÀ. 4.3 Á¤¸®
À妽º´Â ´Ü¾î¸¦ ±âÁØÀ¸·Î ÇÑ´Ù. ±×·¯¹Ç·Î ¹Þ¾ÆµéÀÎ ¹®ÀåÀ» ¾îÀý·Î ±¸ºÐÇÏ°í °¢ ¾îÀý¿¡¼ ÀǹÌÀÖ´Â ´Ü¾î¸¦ ¾ò¾î¿À±â À§Çؼ ¾î¹Ì¿Í Á¢»ç¸¦ Á¦°Å ½ÃŲ´Ù.
ÀǹÌÀִ¿¡ ÁÖ¸ñÇØ¾ß ÇÑ´Ù. ¸ÔÀ» °ÍÀÌ ¸¹´Ù. ¿¡¼ ¸Ô°ú °ÍÀº ´Ü¾îÀÌÁö¸¸ ³Ê¹« ª°í ÀϹÝÀûÀ̱⠶§¹®¿¡ ÀÌµé ´Ü¾î¸¦ ºÐ·ùÇØ ³»Áö´Â ¾Ê´Â´Ù. Ư¡ÀûÀº Àǹ̸¦ °¡Áö°í ÀÖ´Â ´Ü¾î¿¡ ÇÑÇØ¼ ºÐ·ùÇØ ³½´Ù. Ư¡ÀûÀÎ Àǹ̸¦ ±¸ºÐÇØ³»´Â ±âÁØÀº ´Ü¾îÀÇ ±æÀÌ·Î ÇÑ´Ù. ¿µ¹®Àº 3byte ÇѱÛÀº 4byteÀÌ»óÀ¸·Î ÇÑ´Ù. 5 ¼³°è
Down -> Top ¹æ½ÄÀ¸·Î ±â¼úÇÑ´Ù. °Ë»ö¿£ÁøÀ» À§ÇÑ °¢ ±â´ÉµéÀÇ ÀϹݻçÇ×À» ±â¼úÇϰí À̸¦ Åä´ë·Î ÀüüÀûÀÎ °Ë»ö¿£Áø ÀÇ ¸ð¾çÀ» ±â¼úÇÑ´Ù. 5.1 µ¥ÀÌÅÍ ÀúÀå ÀϹÝ
URL ¸µÅ©¸¦ °Ë»öÇØ¼ À¥ÆäÀÌÁö¸¦ ÀÐ¾î µéÀÌ°í ´Ü¾î¸¦ ±âÁØÀ¸·Î À妽º¸¦ ÀÛ¼ºÇÑ´Ù. À̵é À妽º Á¤º¸µéÀº DB¸¦ ÅëÇØ¼ °ü¸® µÇ¸ç, ½ÇÁ¦ ÆäÀÌÁö´Â ·ÎÄÃÈ£½ºÆ®¿¡ ÀÏ¹Ý ÆÄÀÏ ÇüÅ·ΠÁ¸ÀçÇÏ°Ô µÈ´Ù. ÀÌµé ÆÄÀÏÀº ÆäÀÌÁöÀÇ À̸§±×´ë·Î ÀúÀåµÈ´Ù.
À妽º Á¤º¸¸¦ ÀúÀåÇϱâ À§Çؼ 2°³ÀÇ Å×À̺íÀÌ ÇÊ¿äÇÏ´Ù. Çϳª´Â »çÀÌÆ®(Site)À̸§À» ÀúÀåÇϱâ À§ÇÑ ¿ëµµ·Î »ç¿ëµÇ¸ç ´Ù¸¥ Çϳª´Â ÆäÀÌÁöÀÇ URLÁ¤º¸¿Í ÆäÀÌÁö°¡ ÀúÀåµÈ À§Ä¡ Á¤º¸¸¦ ÀúÀåÇϱâ À§Çؼ »ç¿ëµÈ´Ù.
°¡Á¤ $pre_fix_dir = "/usr/jsearch" $jui = 1 $jpi = 2 $page_name = "/modules.php?name=test&file=myfile" °á°ú ÀúÀåµÈ ÆÄÀÏÀ̸§ : "/usr/jsearch/1/2"½ÇÁ¦ ÆäÀÌÁöÀÇ Á¤È®ÇÑ URLÁ¤º¸´Â jui, jpi µÎ°³ÀÇ Å×ÀÌºí¿¡ ÀÖ´Â Á¤º¸¸¦ ÀÌ¿ëÇØ¼ ¾ò¾î¿Ã ¼ö ÀÖ´Ù.
´Ü¾îÀ妽º´Â ÀоîµéÀÎ ÆäÀÌÁö¸¦ HTMLÆÄ½ÌÇϰí À̸¦ ´Ù½Ã \n +¸¦ ±âÁØÀ¸·Î ÆÄ½ÌÇØ¼ ´Ü¾îÀÇ ¸ñ·ÏÀ» ¾ò¾î³»°í °¢ ´Ü¾î¿¡ ´ëÇÑ jui¿Í jpiÁ¤º¸¸¦ ÀÔ·ÂÇÔÀ¸·Î½á ¸¸µé¾îÁø´Ù. 5.1.1 µ¥ÀÌÅÍ °Ë»ö ÀϹÝ5.2 ´Ü¾î Àε¦½Ì ¹æ¹ý5.2.1 Àε¦½Ì ±âÁØ
6 ¼³°èµµ¸é
¿©±â ÀÖ´Â°Ç ¸»±×´ë·Î µµ¸éÀÌ´Ù. ½ÇÁ¦ ¼¼ºÎÀûÀÎ ±¸Çö¿¡ ÀÖ¾î¼ ÀÚ·áÇüµîÀº (È¿À²ÀûÀÎ)ÀÚ·áÇüÀ¸·Î º¯°æµÉ °ÍÀÌ´Ù. 6.1 ±âº» °ñ°Ý
ÀÌ ÇÁ·Î±×·¥Àº ´ÙÀ½°ú °°Àº ±¸¼ºÀ» °¡Áö¸ç, Å©°Ô 3°³ÀÇ ¸ðµâ·Î ÀÌ·ç¾îÁø´Ù. +-------------------+
| WEB SERVER |
+-------------------+
| GET
1. | 2.
+----------+ page +-------------+ page
| Http Get | ---------> | PARSER |-------------> FILE SYSTEM
+----------+ +=============+
| 4. | HTML parse |
| +-----------+ | |
+-| URL TABLE |<---|-----+ |
+-----------+ | | |
| | |
+---------| parsing |
| +-------------+
|
| ´Ü¾î/page index 3.
| +-------------+
+-------->| DB Indexing |------------> DB SYSTEM
+-------------+
6.2 Http Get
À̰ÍÀº ´ÜÀÏÀÇ Å¬·¡½º·Î ÀÌ·ç¾îÁø´Ù. WEB SERVER¿¡ Á¢±ÙÇØ¼ ÆäÀÌÁö¸¦ ¿äûÇϸç ÀоîµéÀÎ ÆäÀÌÁö¸¦ ´Ù¸¥ ¸ðµâ¿¡¼ ¿ä±¸ÇÒ ¶§ µÇµ¹·ÁÁØ´Ù.
ÀÌ ¿Ü¿¡µµ ÀÌ Å¬·¡½º´Â "href"¸¦ ¸¸³µÀ» ¶§ À̸¦ ºÐ¼®Çؼ URLÁ¤º¸¸¦ Àоî¿Í¼ ¸ñ·ÏÀ» ¸¸µé¾î¾ß ÇÑ´Ù. ±âº»ÀûÀ¸·Î ¸µÅ©±â¹ÝÀ¸·Î ÆäÀÌÁö¸¦ ¼öÁýÇϱ⠶§¹®ÀÌ´Ù. ÀÌ·¯ÇÑ ÀÛ¾÷À» À§Çؼ ÆÄ½ÌÀ» ÇØ¾ß ÇÑ´Ù. ±×·¯³ª ÀÌ ¸ðµâÀº º°µµÀÇ ÆÄ¼¸¦ Æ÷ÇÔÇÏÁö ¾ÊÀ¸¹Ç·Î PARSER·Î ºÎÅÍ »ý¼ºµÈ URLÀ» ÀÌ¿ëÇÑ´Ù.
ÀÌ ¸ðµâÀº ´ë·« ´ÙÀ½°ú °°Àº Ŭ·¡½º·Î ¸¸µé¾îÁø´Ù. class Http
{
private:
string host;
int port;
int sockfd;
char *data;
char *header;
int datalen;
int cdatasize;
int memsize;
struct sockaddr_in serveraddr;
int addrlen;
public:
Http();
~Http();
int setHost(char *, int);
struct header getHeader();
int ContentType();
char *Get(char *);
};
6.2.1 int Http::setHost(char *host, int port)
ÆäÀÌÁö¸¦ ¿äûÇÒ ¼¹ö È£½ºÆ® Á¤º¸¸¦ ¼³Á¤ÇÑ´Ù.
6.2.2 char *Http::Get(char *pageurl)
ÆäÀÌÁö¸¦ ¿äûÇÑ´Ù. ÆäÀÌÁö¸¦ ¿äûÇϱâ Àü¿¡ setHostÁ¤º¸¸¦ ÀÌ¿ëÇØ¼ ¼¹ö¿¡ connectÇÑ´Ù.
GET /$pageurl HTTP/1.0\n\n
HTTPÀÇ Çì´õ´Â ´ÙÀ½°ú °°Àº Çü½ÄÀ» °¡Áø´Ù. HTTP/1.1 200 OK Date: Thu, 25 Dec 2003 10:59:49 GMT Server: Apache/1.3.28 (HPUX) PHP/4.3.22 X-Powered-By: PHP/4.3.22 Set-Cookie: lang=kor; expires=Fri, 24-Dec-2004 10:59:49 GMT Set-Cookie: cycounter=cycounter; expires=Fri, 02-Jan-1970 00:00:00 GMT; path=/ Connection: close Content-Type: text/html¿äûÇÑ µ¥ÀÌÅÍÀÇ Content-Type¸¦ ¾Ë¾Æ¾ß ÇϹǷΠÇì´õÁ¤º¸¸¦ ¾ò´Â °ÍÀº ¸Å¿ì Áß¿äÇÏ´Ù. Ãʱ⠹öÀü¿¡¼´Â ´ÜÁö text/html¹®¼¸¸À» ´Ù·ê °ÍÀÌ´Ù. ´Ù¸¥ Á¾·ùÀÇ µ¥ÀÌÅ͵éÀº ¸ðµÎ ¹ö¸°´Ù. 6.2.3 int Http::ContentType()
°¡Àå ÃÖ±Ù ¹®¼ÀÇ ContentTypeÀ» µÇµ¹·ÁÁØ´Ù. ÇöÀç´Â text/html¿¡ ´ëÇÑ °Í¸¸ Á¤ÀǵǾî ÀÖ´Ù. ¸¸¾à text/htmlÀ̶ó¸é 1À» ±×·¸Áö ¾ÊÀ»°æ¿ì 0À» µÇµ¹·ÁÁØ´Ù. 6.3 PARSER
Http::Get()À» ÀÌ¿ëÇØ¼ ¾ò¾î¿Â ¹®¼¸¦ ÆÄ½ÌÇÑ´Ù. ÆÄ½ÌÇϱâ Àü¿¡ Http::ContentType()¸¦ ÀÌ¿ëÇØ¼ ÆÄ½Ì°¡´ÉÇÑ µ¥ÀÌÅÍÀÎÁö¸¦ ¸ÕÀú È®ÀÎÇÏ°í ÆÄ½Ì°¡´ÉÇÑ µ¥ÀÌÅͶó¸é ÇØ´ç ÆÄ½Ì¸Þ¼µå¸¦ ½ÇÇà ½ÃŲ´Ù.
ÆÄ½Ì°¡´ÉÇÑ µ¥ÀÌÅÍ´Â ¿øº»À» ÆÄÀϽýºÅÛ¿¡ º°µµ·Î ÀúÀåÇÑ´Ù. ÀÌ ¸ðµâÀº ´ÙÀ½°ú °°Àº Ŭ·¡½º·Î ±¸¼ºµÈ´Ù. typedef struct _pageinfo
{
char url[80];
char page[1024];
} pageinfo;
class Parser
{
private:
set<string> mdata;
set<string> pageUrl;
pageinfo Pinfo;
public:
Parser();
~Parser();
set<string> Rp(string);
char * RemoveChosa(char *word);
set<string> UrlInfo();
pageinfo GetPinfo();
int SplitUrl(string *);
};
¿¹) <a href=http://www.joinc.co.kr/modules/index.php&id=10> pageinfo.url = www.joinc.co.kr pageinfo.page = modules/index.php&id=10 6.3.1 Set<string> Parser::Rp(string data)
ÆäÀÌÁö¸¦ Àоîµé¿©¼ ÆÄ½ÌÇÑ´Ù. ÆÄ½ÌÀº ´ÙÀ½°ú °°Àº ÇÁ·Î¼¼½º·Î ÁøÇàµÈ´Ù. while(´Ü¾î ±æÀÌ ¸¸Å)
{
¸¸¾à "<"¸¦ ¸¸³´Ù¸é ">"À§Ä¡¸¦ ÆÄ¾ÇÇØ¼ Å×±×ÀÎÁö ¾Æ´ÑÁö ÆÇ´ÜÇÑ´Ù.
¿µ¹®/ÇѱÛÀÌ ¾Æ´Ñ Ư¼ö¹®ÀÚÀÇ °æ¿ì ¸ðµÎ ġȯÇÑ´Ù.
\t, \r, \nµîÀ» ±âÁØÀ¸·Î ´Ü¾î·Î Âɰµ´Ù.
Âɰ³Áø ´Ü¾îÀÇ ±æÀ̰¡ 4ÀÌ»óÀ̸é '''mdata'''¿¡ µî·ÏÇÑ´Ù.
}
6.3.2 int Parser::SplitUrl(string *tag)
hrefÅ×±×·Î Á¤ÀǵǴ ¸µÅ©µ¥ÀÌÅÍ ¹®ÀÚ¿ÀÌ µé¾î¿ÔÀ» ¶§ À̸¦ URL°ú ÆäÀÌÁö·Î ºÐ¸®ÇÏ°í ºÎÁ¤È®ÇÑ ¸µÅ©¿Í ¿äûºÒ°¡´ÉÇÑ ¸µÅ©´Â Á¦°ÅÇÑ´Ù. ¿¹¸¦ µé¾î mailto:, ftp:µîÀº ¹ö¸°´Ù.
´ÙÀ½Àº ´ë·«ÀûÀÎ ÄÚµåÀÌ´Ù.
¸®ÅϰªÀº ÁÖ¾îÁø ¸µÅ©µ¥ÀÌÅÍ tagÀÇ ºÐ¼®°á°ú´Ù. À߸øµÈ ¸µÅ©µéÀÇ °æ¿ì¿¡´Â -1À» ±×·¸Áö ¾ÊÀ» °æ¿ì 1À» ¸®ÅÏÇÑ´Ù. int Parser::SplitUrl(string *tag) { // a href="http://www.join.co.kr" // a href='http://www.joinc.co.kr' // ó·³ ±¸¼ºµÇ´Â °æ¿ì°¡ ÀÖ´Ù. À̶§ ",'¸¦ Á¦°ÅÇØÁØ´Ù. if(tag->find("\"") == 0) *tag = tag->substr(1, tag->find("\"", 1) -1); if(tag->find("'") == 0) *tag = tag->substr(1, tag->find("'", 1) -1); // anchor´Â ¹«½ÃÇÑ´Ù. if (tag->find("#") == 0) { return -1; } // ftp´Â ¹«½ÃÇÑ´Ù. if (strncmp(tag->c_str(), "ftp:", 4) == 0) { return -1; } // mailµµ ¹«½ÃÇÑ´Ù. if (strncmp(tag->c_str(), "mailto:", 7) == 0) { return -1; } // ÀϹÝÀûÀ¸·Î ¸µÅ©´Â a href=http://www.joinc.co.kr.. °ú°°Àº Çü½ÄÀÌÁö¸¸ // a href=www.joinc.co.kr..°ú °°ÀÌ ±¸¼ºµÉ ¼öµµ ÀÖ´Ù. // ÈÄÀÚÀÇ °æ¿ì À߸øµÈ ¸µÅ©Á¤º¸Áö¸¸ ²Ï ¸¹Àº ¸µÅ©°¡ ÈÄÀÚó·³ ±â¼úµÇ¹Ç·Î // À̸¦ ó¸®Çϵµ·Ï ÇÑ´Ù. if (strncmp(tag->c_str(), "http:", 5) == 0) { if(strncmp(tag->c_str()+5, "//", 2) == 0) sscanf(tag->c_str(), "%[^:]%[:]%[^a-zA-Z0-9]%[^/]%s", null,null, null, Pinfo.url, Pinfo.page); else sscanf(tag->c_str(), "%[^:]%[:]%[^/]%s", null, null, Pinfo.url, Pinfo.page); return 0; } return 1; } 6.3.3 char *Parser::RemoveChosa(char *word)
ÁÖ¾îÁø ´Ü¾î word¿¡¼ Á¶»ç¸¦ Á¦°ÅÇÑ´Ù. Á¶»çÀÇ ¸ñ·ÏÀº (º¯°æ°¡´ÉÇÏ´Ù)´ÙÀ½°ú °°ÀÌ ÁÖ¾îÁú °ÍÀÌ´Ù. char *chosa[] ={"ÀÖ½À´Ï´Ù","±×·¯¹Ç·Î","¿Ö³ÄÇϸé",
"±×·¡¼", "±×¸®°í", "¿Ö³Ä¸é", "ÀÔ´Ï´Ù", "À̹ǷÎ",
"¿¡¼", "ó·³", "º¸´Ù", "·Î¼", "·Î½á", "±îÁö",
"ÇÑ´Ù", "Çϰí", "¿¡°Ô","Çϱâ", "ÇÏ´Â", "ºÎÅÍ",
"¿Í", "À»","¸¦", "Àº","´Â", "ÀÌ", "°¡", "ÀÇ", "µî", "¿¡",
"ÇÑ",
NULL};
À§ ¹è¿¿¡´Â Á¶»ç »Ó¸¸ ¾Æ´Ï¶ó Á¢¼Ó»çµî Á¦°ÅÇØµµ µÇ´Â ¸ðµç ´Ü¾î ¸ñ·ÏÀÌ µé¾î°¥ ¼ö ÀÖ´Ù. ´Ü¾î¸¦ µî·ÏÇÒ ¶§´Â ±æÀ̰¡ °¡Àå ±ä°ÍºÎÅÍ µî·ÏÇϵµ·Ï ÇÑ´Ù. ´ÙÀ½Àº Á¶»ç¸¦ Á¦°ÅÇϱâ À§ÇÑ ´ë·«ÀûÀÎ ÄÚµå´Ù. char *Parser::RemoveChosa(char *word) { char *cl; int i = 0, j; vector<int> llist; while((cl = *(chosa +i)) != NULL) { for (j = 0; j < llist.size(); j++) { if (llist[j] == i) goto La; } if(strlen(word) >= strlen(cl)) { if (strcmp(cl, word+(strlen(word)-strlen(cl))) == 0) { cout << "Á¶»ç ¹ß°ß" << word <<endl; word[strlen(word)-strlen(cl)] = 0x00; llist.push_back(i); i = 0; } } La: i++; } cout << "¸®ÅϰªÀº " << word << endl; if (strlen(word) == 0) word = NULL; return word; }À§ÀÇ Äڵ带 º¸¸é Á¶»ç·Î ÆÇ´ÜµÇ´Â ¹®ÀÚ°¡ ´õÀÌ»ó ¹ß»ýÇÏÁö ¾ÊÀ» ¶§±îÁö chosa¹è¿À» ¼øÈ¯Çϰí ÀÖÀ½À» ¾Ë ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾îÇб³¿¡¼, Çб³¿¡¼´Â°ú °°Àº ´Ü¾î°¡ ÀÖ´Ù¸é Çѹø¸¸ ¼øÈ¯ÇÏ°Ô µÉ°æ¿ì ÀüÀÚÀÇ °æ¿ì Çб³·Î ³ª¿ÀÁö¸¸ ÈÄÀÚÀÇ °æ¿ì´ÜÁö ´Â¸¸ Á¦°Å µÇ±â ¶§¹®¿¡ Çб³¿¡¼°¡ ´Ü¾î·Î ¸®ÅϵǴ °Í°ú °°Àº ¹®Á¦°¡ ¹ß»ýÇÒ ¼ö Àֱ⠶§¹®ÀÌ´Ù. ±×·¯¹Ç·Î ´õÀÌ»ó Á¶»ç·Î ÆÇ´ÜµÇ´Â°Ô ¹ß°ßµÇÁö ¾ÊÀ» ¶§±îÁö ¼øÈ¯ÇÒ Çʿ䰡 ÀÖ´Ù.
ÀÌ¹Ì °Ë»çÇÑ Á¶»ç´Â ´Ù½Ã °Ë»çÇÒ Çʿ䰡 ¾øÀ¸¹Ç·Î llist¿¡ ³Ö¾î¼ µû·Î °ü¸®ÇÑ´Ù.
6.4 DB Indexing
ÀÌ ¸ðµâÀº Parser::Rp·ÎºÎÅÍ Parser¸ðµâ¿¡¼ ¸¸µé¾îÁø ´Ü¾î¸ñ·Ï°ú URL°ú ÆäÀÌÁö °æ·ÎµîÀ» ÀÌ¿ëÇØ¼ DB¿Í FILE½Ã½ºÅÛ¿¡ ÀúÀåÇÑ´Ù.
´ÙÀ½Àº ´ë·«ÀûÀÎ ÇÁ·Î¼¼½º´Ù. int main() { sql ¼¹ö¿¡ ¿¬°á { jsearch_url_index Å×ÀÌºí¿¡ URLÀÌ µî·ÏµÇ¾î ÀÖ´ÂÁö È®ÀÎÇÑ´Ù. ¸¸¾à µî·ÏµÇ¾î ÀÖÁö ¾Ê´Ù¸é { DB¿¡ ÀúÀå {jui | url} } jsearch_page_index Å×ÀÌºí³»¿¡ ÆäÀÌÁö °æ·Î°¡ µî·ÏµÇ¾î ÀÖ´ÂÁö È®ÀÎÇÑ´Ù. ¸¸¾à µî·ÏµÇ¾î ÀÖÁö ¾Ê´Ù¸é { DB¿¡ ÀúÀå {jui | upi | page °æ·Î} } jui¿Í jpi¸¦ ¾ò¾î¿Â´Ù. } ¸¸¾à ÆäÀÌÁöÀÇ contenttypeÀÌ text/html ȤÀº text/plain À̶ó¸é { ÆÄÀÏ ½Ã½ºÅÛ¿¡ ÀúÀåÇÑ´Ù. ÀúÀå °æ·Î´Â prefix_dir/jui/jpi DB¿¡ ÀúÀåÇÑ´Ù.{´Ü¾î | jui | jpi | contenttype | time} } } 6.5 DB Å×À̺í Á¤º¸
¿©±â¿¡¼´Â ´Ü¾î À妽º¿Í URL, ÆäÀÌÁö °æ·ÎÀÇ µ¥ÀÌÅ͸¦ ÀúÀåÇϱâ À§ÇÑ Å×ÀÌºí¿¡ ´ëÇØ¼ ¼³¸íÇÑ´Ù. ÇÁ·ÎÅäŸÀÔÀÌ¸ç ½ÇÁ¦ ÄÚµù¿¡¼´Â Çʿ信 µû¶ó º¯°æµÉ ¼ö ÀÖ´Ù. 6.5.1 jsearch_url_index
ÀÌ Å×ÀÌºí¿¡´Â URLµé¿¡ ´ëÇÑ Á¤º¸°¡ µé¾î°£´Ù. ÇöÀç ´Ü°è¿¡¼´Â ´ÜÁö joinc.co.krÀÇ ÄÁÅÙÃ÷¸¸À» À妽ºÇϹǷΠÇÊ¿ä ¾ø´Â Å×À̺íÀ̶ó°í º¼¼öµµ ÀÖÁö¸¸ È®ÀåÀ» À§Çؼ´Â ¹Ýµå½Ã ÇÊ¿äÇÏ´Ù.
6.5.2 jsearch_page_index
ÀÌ Å×ÀÌºí¿¡´Â ÆäÀÌÁö °æ·Î°¡ µé¾î°£´Ù ÆäÀÌÁö °æ·Î´Â URL¿¡ ´ëÇØ¼ À¯ÀÏÇÏ°Ô µÇ¹Ç·Î jsearch_url_indexÅ×À̺íÀ» ÂüÁ¶ÇÑ´Ù.
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù. |
|