mod_estraier == ³µÍ× mod_estraier ¤Ï Hyper Estraier ¤Î¥Î¡¼¥ÉAPI ¤òÍѤ¤¤Æ¡¢ Apache ¤òÄ̲ᤷ¤¿ html ¤ò¸¡º÷ DB ¤Ë¼«Æ°Åª¤ËÅÐÏ¿¤¹¤ë Apache ¤Î¥â¥¸¥å¡¼¥ë¤Ç¤¹¡£Æäˡ¢¥×¥í¥¯¥·¤òÄ̲ᤷ¤¿ ¥É¥¥å¥á¥ó¥È¤ò¸¡º÷¤Ç¤¤ë¤è¤¦¤Ë¤¹¤ë¤³¤È¤ä¡¢ Wiki ¤ä BBS ¤Ê¤É¤ÎưŪ¤Ê¥³¥ó¥Æ¥ó¥Ä¤Î ¸¡º÷ DB ¤ò¿ï»þ¹¹¿·¤¹¤ë¤³¤È¤ò¼ç¤ÊÌÜŪ¤È¤·¤Æ¹Í¤¨¤Æ¤¤¤Þ¤¹¡£ Hyper Estraier ¤Ë¤Ä¤¤¤Æ¤Ï°Ê²¼¤ò¤´»²¾È²¼¤µ¤¤¡£ http://hyperestraier.sourceforge.net/ mod_estraier ¤Î sf.net ¾å¤Î¥×¥í¥¸¥§¥¯¥È¥Ú¡¼¥¸¤Ï¡¢ http://sourceforge.net/projects/modestraier/ ¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ mod_estraier ¤Ï GPL2 ¤Î´ð¤ËÇÛÉÛ¤µ¤ì¤Þ¤¹¡£ == ´Ä¶ * linux 2.6.11-mm4 * gcc 3.4.3, 4.0.1 * Apache 2.0.52, 2.0.54, 2.1.7 * Hyper Estraier 1.0.2 * QDBM 1.8.33 ¤Ê¤É¤òÍѤ¤¤Æ¥Æ¥¹¥È¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ == ¼Â¹ÔÊýË¡ === ¥³¥ó¥Ñ¥¤¥ë mod_estraier ¤Î¥¢¡¼¥«¥¤¥Ö¤òŸ³«¤·¤Æ¡¢ $ ./configure $ make # make install ¤È¤·¤Æ²¼¤µ¤¤¡£¤³¤ì¤Ç¥³¥ó¥Ñ¥¤¥ë¡¦¥¤¥ó¥¹¥È¡¼¥ë¤Ï´°Î»¤Ç¤¹¡£ ./configure ¤Î¥ª¥×¥·¥ç¥ó¤È¤·¤Æ¡¢ --with-tidy ¤Ç tidy ¤Î¾ì½ê¤ò»ØÄê¤Ç¤¡¢ --with-apxs ¤Ç apxs ¤Î¾ì½ê¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ === ÀßÄê ¼¡¤Ë Apache ¤ÎÀßÄê¤ò¹Ô¤¤¤Þ¤¹¡£ httpd.conf ¤Ë¡¢Î㤨¤Ð mod_estraier ¤ò¥×¥í¥¯¥·¤È¤·¤Æ»ÈÍѤ¹¤ë¾ì¹ç LoadModule estraier_module modules/mod_estraier.so ProxyRequests On <Proxy *> Order deny,allow Deny from all Allow from 127.0.0.1 SetOutputFilter estraier EstraierNode http://localhost:1978/node/test EstraierUser admin EstraierPass admin EstraierLanguage ja EstraierDenyURI http://[a-z]*.?google.co EstraierAllowURI http://labs.google.com/ EstraierDenyURI favicon.ico EstraierUseWeight On EstraierFilterCommand ^application/pdf H@/usr/local/share/hyperestraier/filter/estfxpdftohtml EstraierFilterCommand ^application/msword H@/usr/local/share/hyperestraier/filter/estfxmsotohtml EstraierFilterCommand ^application/vnd.ms-(excel|powerpoint) H@/usr/local/share/hyperestraier/filter/estfxmsotohtml </Proxy> ¤Ê¤É¤È²Ã¤¨¤Þ¤¹¡£ ¤Þ¤¿¡¢Î㤨¤Ð mod_estraier ¤ò¥ê¥Ð¡¼¥¹¥×¥í¥¥·¤È¤·¤Æ»ÈÍѤ¹¤ë¤Ê¤é¡¢ <Location /my_web/> SetOutputFilter estraier EstraierNode http://localhost:1978/node/test EstraierUser admin EstraierPass admin EstraierLanguage ja EstraierDenyURI favicon.ico EstraierUseWeight On </Location> ¤Ê¤É¤È²Ã¤¨¤Þ¤¹¡£ ¤½¤ì¤¾¤ì¤Î¥ª¥×¥·¥ç¥ó¤Î¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï°Ê²¼¤Ç½Ò¤Ù¤Þ¤¹¡£ ¾¤Î¥µ¥ó¥×¥ë¤¬¥Ñ¥Ã¥±¡¼¥¸Æâ¤Î doc/recipes.conf ¤Ë¤â¤¢¤ê¤Þ¤¹¡£ === Apache ¤ÎºÆµ¯Æ° ¼¡¤Ë Apache ¤ÎºÆµ¯Æ°¤ò¹Ô¤¤¤Þ¤¹¡£ ¿¤¯¤Î¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤Ç°Ê²¼¤Î¤è¤¦¤Ê¤â¤Î¤¬Í¸ú¤Ç¤¢¤ë¤È»×¤¤¤Þ¤¹¡£ * > /etc/init.d/httpd restart * > /etc/init.d/apache2 restart === estmaster ¤Î¼Â¹Ô ´û¸¤Î DB ¤¬Ìµ¤¤¤Î¤Ç¤¢¤ì¤Ð¡¢Å¬Àڤʥǥ£¥ì¥¯¥È¥ê¤Î²¼¤Ç¡¢ estmaster init casket ¤È¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ½é´ü²½¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ ½é´ü²½¤µ¤ì¤¿¸å¤Ï¡¢ estmaster start casket ¤È¤·¤Æ estmaster ¤òµ¯Æ°¤·¤Þ¤¹¡£ Á°½Ò¤ÎÀßÄê¤Î¾ì¹ç¡¢ test ¤È¤¤¤¦¥Î¡¼¥É¤¬É¬ÍפǤ¹¤Î¤Ç¡¢ http://localhost:1978/master_ui ¤Ë¥¢¥¯¥»¥¹¤·¤Æ¡¢Å¬ÀÚ¤ÊÀßÄê¤ò¹Ô¤Ã¤Æ²¼¤µ¤¤¡£ === ¼Â¹Ô ¥Ö¥é¥¦¥¶¤Î¥×¥í¥¥·¤ÎÀßÄê¤Î¥Û¥¹¥È¤ò localhost ¡¢¥Ý¡¼¥È¤ò 80 ¤È¤·¤Þ¤¹¡£ ¤¢¤È¤ÏÄ̾ïÄ̤ê¥Ö¥é¥¦¥¸¥ó¥°¤¹¤ì¤Ð¡¢¤É¤ó¤É¤ó¸¡º÷ DB ¤¬Î¯¤Þ¤Ã¤Æ¤¤¤¤Þ¤¹¡£ http://localhost:1978/node/test/search_ui ¤Ê¤É¡¢Å¬ÀڤʥΡ¼¥É API ¥¯¥é¥¤¥¢¥ó¥È¤òÁªÂò¤·¤Æ¸¡º÷¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ == ¥ª¥×¥·¥ç¥ó¤Ë¤Ä¤¤¤Æ mod_estraier ¤Ç¤Ï¤¤¤¯¤Ä¤«¤Î¥ª¥×¥·¥ç¥ó¤ò httpd.conf ¤Ëµ½Ò¤Ç¤¤Þ¤¹¡£ === EstraierNode Hyper Estraier ¤Î¥Î¡¼¥É¥µ¡¼¥Ð¤È¥Î¡¼¥É¤ò»ØÄꤷ¤Þ¤¹¡£ »ØÄꤷ¤Ê¤±¤ì¤Ð mod_estraier ¤ÏÆ°ºî¤·¤Þ¤»¤ó¡£ === EstraierUser, EstraierPass ¥Î¡¼¥É¥µ¡¼¥Ð¤Î¥æ¡¼¥¶Ì¾¡¢¥Ñ¥¹¥ï¡¼¥É¤ò»ØÄꤷ¤Þ¤¹¡£ »ØÄꤷ¤Ê¤±¤ì¤Ð mod_estraier ¤ÏÆ°ºî¤·¤Þ¤»¤ó¡£ === EstraierProxyHost, EstraierProxyPort ¥Î¡¼¥É¥µ¡¼¥Ð¤Ë¥¢¥¯¥»¥¹¤¹¤ëºÝ¤Ë HTTP ¥×¥í¥¥·¤ò»ÈÍѤ¹¤ë¾ì¹ç¤Ë»ØÄꤷ¤Þ¤¹¡£ ¾Êά¤¹¤ë¤È¥×¥í¥¥·¤ò»È¤ï¤Ê¤¤ÀßÄê¤È¤Ê¤ê¤Þ¤¹¡£ === EstraierTimeout ¥Î¡¼¥É¥µ¡¼¥Ð¤Ë¥¢¥¯¥»¥¹¤¹¤ëºÝ¤Î¥¿¥¤¥à¥¢¥¦¥È¤òÉäǻØÄꤷ¤Þ¤¹¡£ ¥Ç¥Õ¥©¥ë¥È¤Ï5ÉäȤʤäƤ¤¤Þ¤¹¡£ === EstraierDenyURI DB ¤ËÅÐÏ¿¤·¤Ê¤¤ URI ¤òÀµµ¬É½¸½¤Ç»ØÄꤷ¤Þ¤¹¡£ Î㤨¤Ð google ¤ò DB ¤ËÅÐÏ¿¤·¤¿¤¯¤Ê¤¤¾ì¹ç¤Ï¡¢ EstraierDenyURI http://[a-z]*.?google.co ¤Ê¤É¤È»ØÄꤹ¤ì¤ÐÎɤ¤¤Ç¤·¤ç¤¦¡£ ¤³¤Î¥ª¥×¥·¥ç¥ó¤ÏÊ£¿ô¸Ä»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ === EstraierAllowURI DB ¤ËÅÐÏ¿¤¹¤ë URI ¤òÀµµ¬É½¸½¤Ç»ØÄꤷ¤Þ¤¹¡£ Î㤨¤Ð google ¤Î¤ß¤ò DB ¤ËÅÐÏ¿¤·¤¿¤¤¾ì¹ç¤Ï¡¢ EstraierDenyURI .* EstraierAllowURI http://[a-z]*.?google.co ¤Ê¤É¤È»ØÄꤹ¤ì¤ÐÎɤ¤¤Ç¤·¤ç¤¦¡£ ¤³¤Î¥ª¥×¥·¥ç¥ó¤ÏÊ£¿ô¸Ä»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ EstraierDenyURI ¤È EstraierAllowURI ¤Ï¡¢ ¸å¤ËÍè¤ë¤â¤Î¤Î¸ú²Ì¤¬Í¥À褵¤ì¤Þ¤¹¡£ === EstraierLanguage Hyper Estraier ¤ËÅÐÏ¿¤¹¤ëºÝ¤ËÍѤ¤¤ë¸À¸ì¤ò»ØÄꤷ¤Þ¤¹¡£ ÆüËܸì´Ä¶¤Î¿Í¤Ç¤¢¤ì¤Ð¡¢ EstraierLanguage ja ¤È¤·¤Æ¤ª¤±¤Ð¤À¤¤¤¿¤¤Âç¾æÉפÀ¤È»×¤¤¤Þ¤¹¡£ en, ja, zh, ko, misc ¤ÎÃ椫¤é»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤¡¢ ¥Ç¥Õ¥©¥ë¥È¤Ï en ¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ === EstraierDetachThread DB ¤ÎÅÐÏ¿¤ò¥Ç¥¿¥Ã¥Á¤·¤¿¥¹¥ì¥Ã¥É¤Ç¹Ô¤¤¤Þ¤¹¡£ ¥ì¥¹¥Ý¥ó¥¹¤¬¹â®¤Ë¤Ê¤ëͽÄê¤Ç¤¹¤¬¡¢ º£¤Î¤È¤³¤íÂ礤ʸú²Ì¤Ï¸«¤é¤ì¤Æ¤¤¤Þ¤»¤ó¡£ Ê£¿ô CPU ¤Î¥Þ¥·¥ó¤Ç¤Ï¸ú²Ì¤¬Â礤¯¤Ê¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£ ¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï off ¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ === EstraierDenyRequestHeader ¥ê¥¯¥¨¥¹¥È¥Ø¥Ã¥À¤Î¾ò·ï¤Ë¤è¤Ã¤Æ DB ¤ËÅÐÏ¿¤·¤Ê¤¤¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ Î㤨¤Ð EstraierDenyRequestHeader Authorization .* ¤Ê¤É¤È¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢Ç§¾Ú¤¬¤«¤«¤Ã¤Æ¤¤¤ë¾ì½ê¤ò DB ¤ËÅÐÏ¿¤·¤Ê¤¤¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ ¤³¤Î¾ò·ï¤Ï¥Ø¥Ã¥À¡¦ÆâÍƤȤâ¤ËÀµµ¬É½¸½¤Çµ½Ò¤·¤Þ¤¹¡£ === EstraierDenyResponseHeader ¥ì¥¹¥Ý¥ó¥¹¥Ø¥Ã¥À¤Î¾ò·ï¤Ë¤è¤Ã¤Æ DB ¤ËÅÐÏ¿¤·¤Ê¤¤¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ === EstraierUseWeight Ê£¿ô²ó»²¾È¤·¤¿ URL ¤Ë½Å¤ß¤ò¤Ä¤±¤Æ¤¤¤¯¤è¤¦¤Ë¤Ç¤¤Þ¤¹¡£ ¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï off ¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ === EstraierFilterCommand ÆÃÄê¤Î Content-Type ¤ËÂФ·¤Æ¥Õ¥£¥ë¥¿¤Ë¤¹¤ë¥³¥Þ¥ó¥É¤ò»ØÄꤷ¤Þ¤¹¡£ Î㤨¤Ð EstraierFilterCommand ^application/pdf H@/usr/local/share/hyperestraier/filter/estfxpdftohtml ¤Ê¤É¤È¤¹¤ë¤È pdf ¤ò Hyper Estraier ÉÕ°¤Î estfxpdftohtml ¤ò ÍѤ¤¤Æ¥Õ¥£¥ë¥¿¤¹¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£¥Õ¥£¥ë¥¿¤µ¤ì¤¿¸å¤Îʸ½ñ¤¬¡¢ html ¤Ê¤é H@ ¡¢ text ¤Ê¤é T@ ¤ò¥³¥Þ¥ó¥É¤ËÁ°ÃÖ¤·¤Æ»ØÄꤷ¤Æ²¼¤µ¤¤¡£ ¥Õ¥£¥ë¥¿¤¬Ê¸½ñ¥É¥é¥Õ¥È¤ËÊÑ´¹¤¹¤ë¾ì¹ç¤Ï²¿¤â¤Ä¤±¤Ê¤¯¤Æ¤«¤Þ¤¤¤Þ¤»¤ó¡£ === EstraierFilterTmpdir ¾åµ¥Õ¥£¥ë¥¿¥³¥Þ¥ó¥É¤¬»ÈÍѤ¹¤ë°ì»þ¥Ç¥£¥ì¥¯¥È¥ê¤ò»ØÄꤷ¤Þ¤¹¡£ Î㤨¤Ð EstraierFilterTmpdir /tmp ¤Ê¤É¤È¤·¤Æ²¼¤µ¤¤¡£ === EstraierDocumentSizeLimit ½èÍý¤¹¤ëʸ½ñ¤ÎºÇÂ祵¥¤¥º¤ò»ØÄê¤Ç¤¤Þ¤¹¡£ ¥Ç¥Õ¥©¥ë¥È¤Ï 10000000 ¤Ç¡¢ 10MB ¤Ç¤¹¡£ == mod_estraier_search Apache ÁȤ߹þ¤ß¤Î´Ê°×¥µ¡¼¥Á¥ã¤È¤·¤Æ¡¢ mod_estraier_search ¤È¤¤¤¦¥â¥¸¥å¡¼¥ë¤âÉÕ°¤·¤Æ¤¤¤Þ¤¹¡£ LoadModule estraier_search_module modules/mod_estraier_search.so <Location /moe/> SetHandler estraier_search EstsearchNode http://localhost:1978/node/test EstsearchUser admin EstsearchPass admin EstsearchTimeout 5 EstsearchNodeDepth 0 EstsearchTemplateHead /home/i/wrk/mod_estraier/tmpl/estseek.head EstsearchTemplateFoot /home/i/wrk/mod_estraier/tmpl/estseek.foot </Location> ¤Ê¤É¤ÈÀßÄꤷ¤Æ²¼¤µ¤¤¡£ EstsearchTemplate* ¤ÏÉÕ°¤Î estseek.* ¤¬¤¢¤ë¾ì½ê¤Ë½ñ¤´¹¤¨¤Æ¤¯¤À¤µ¤¤¡£ ¤³¤ÎÀßÄê¤ò¤·¤Æ¡¢ http://localhost/moe/ ¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤È ¤³¤Î´Ê°×¥µ¡¼¥Á¥ã¤òÍѤ¤¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ ¤³¤Î¥µ¡¼¥Á¥ã¤Ç¤Ï Google ¤Ë»÷¤¿µË¡¤Ç¸¡º÷¾ò·ï¤ò»ØÄê¤Ç¤¤Þ¤¹¡£ ¤Ä¤Þ¤ê¡¢ OR ¤ä | ¤ò»ÈÍѤ¹¤ë¤È or ¸¡º÷¤¬¤Ç¤¡¢ ¸¡º÷¸ì¤ò - ¤Ç»Ï¤á¤ë¤È¤½¤Îñ¸ì¤ò³°¤¹¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ link:URI ¤Ç URI ¤Ë¥ê¥ó¥¯¤·¤Æ¤¤¤ë¥µ¥¤¥È¤òÃê½Ð¤Ç¤¡¢ site:URI ¤Ç URI ¤Ë´Þ¤àñ¸ì¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ == mod_estraier_cache mod_estraier_cache ¤Ï¼Â¸³Åª¤Ê¥â¥¸¥å¡¼¥ë¤Ç¤¹¡£ Hyper Estraier ¤Î DB ¤«¤é¥É¥¥å¥á¥ó¥È¤òºÆÀ¸¤·¤Þ¤¹¡£ LoadModule estraier_cache_module modules/mod_estraier_cache.so Listen *:8081 <VirtualHost *:8081> SetHandler estraier_cache EstcacheNode http://localhost:1978/node/web EstcacheUser admin EstcachePass admin </VirtualHost> ¤Ê¤É¤ÈÀßÄꤷ¤Æ¡¢¤³¤ì¤ò¥×¥í¥¥·¤È¤·¤Æ¥Ö¥é¥¦¥º¤·¤Æ²¼¤µ¤¤¡£