mod_estraier
== ³µÍ×
mod_estraier ¤Ï Hyper Estraier ¤Î¥Î¡¼¥ÉAPI ¤òÍѤ¤¤Æ¡¢
Apache ¤òÄ̲ᤷ¤¿ html ¤ò¸¡º÷ DB ¤Ë¼«Æ°Åª¤ËÅÐÏ¿¤¹¤ë
Apache ¤Î¥â¥¸¥å¡¼¥ë¤Ç¤¹¡£ÆÃ¤Ë¡¢¥×¥í¥&hibar;¥·¤òÄ̲ᤷ¤¿
¥É¥¥å¥á¥ó¥È¤ò¸¡º÷¤Ç¤¤ë¤è¤¦¤Ë¤¹¤ë¤³¤È¤ä¡¢
Wiki ¤ä BBS ¤Ê¤É¤ÎưŪ¤Ê¥³¥ó¥Æ¥ó¥Ä¤Î
¸¡º÷ DB ¤ò¿ï»þ¹¹¿·¤¹¤ë¤³¤È¤ò¼ç¤ÊÌÜŪ¤È¤·¤Æ¹Í¤¨¤Æ¤¤¤Þ¤¹¡£
Hyper Estraier ¤Ë¤Ä¤¤¤Æ¤Ï°Ê²¼¤ò¤´»²¾È²¼¤µ¤¤¡£
http://hyperestraier.sourceforge.net/
mod_estraier ¤Î sf.net ¾å¤Î¥×¥í¥¸¥§¥&hibar;¥È¥Ú¡¼¥¸¤Ï¡¢
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 ¤ò¥×¥í¥&hibar;¥·¤È¤·¤Æ»ÈÍѤ¹¤ë¾ì¹ç
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 ¤ÎºÆµ&hibar;ư
¼¡¤Ë Apache ¤ÎºÆµ&hibar;ư¤ò¹Ô¤¤¤Þ¤¹¡£
¿¤&hibar;¤Î¥Ç¥£¥¹¥È¥ê¥Ó¥å¡¼¥·¥ç¥ó¤Ç°Ê²¼¤Î¤è¤¦¤Ê¤â¤Î¤¬Í¸ú¤Ç¤¢¤ë¤È»×¤¤¤Þ¤¹¡£
- > /etc/init.d/httpd restart
- > /etc/init.d/apache2 restart
=== estmaster ¤Î¼Â¹Ô
´û¸¤Î DB ¤¬Ìµ¤¤¤Î¤Ç¤¢¤ì¤Ð¡¢Å¬Àڤʥǥ£¥ì¥&hibar;¥È¥ê¤Î²¼¤Ç¡¢
estmaster init casket
¤È¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ½é´ü²½¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ ½é´ü²½¤µ¤ì¤¿¸å¤Ï¡¢
estmaster start casket
¤È¤·¤Æ estmaster ¤òµ&hibar;ư¤·¤Þ¤¹¡£
Á°½Ò¤ÎÀßÄê¤Î¾ì¹ç¡¢ test ¤È¤¤¤¦¥Î¡¼¥É¤¬É¬ÍפǤ¹¤Î¤Ç¡¢
http://localhost:1978/master_ui
¤Ë¥¢¥&hibar;¥»¥¹¤·¤Æ¡¢Å¬ÀÚ¤ÊÀßÄê¤ò¹Ô¤Ã¤Æ²¼¤µ¤¤¡£
=== ¼Â¹Ô
¥Ö¥é¥¦¥¶¤Î¥×¥í¥¥·¤ÎÀßÄê¤Î¥Û¥¹¥È¤ò localhost ¡¢¥Ý¡¼¥È¤ò 80 ¤È¤·¤Þ¤¹¡£ ¤¢¤È¤ÏÄ̾ïÄ̤ê¥Ö¥é¥¦¥¸¥ó¥°¤¹¤ì¤Ð¡¢¤É¤ó¤É¤ó¸¡º÷ DB ¤¬Î&hibar;¤Þ¤Ã¤Æ¤¤¤¤Þ¤¹¡£
http://localhost:1978/node/test/search_ui
¤Ê¤É¡¢Å¬ÀڤʥΡ¼¥É API ¥&hibar;¥é¥¤¥¢¥ó¥È¤òÁªÂò¤·¤Æ¸¡º÷¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
== ¥ª¥×¥·¥ç¥ó¤Ë¤Ä¤¤¤Æ
mod_estraier ¤Ç¤Ï¤¤¤&hibar;¤Ä¤«¤Î¥ª¥×¥·¥ç¥ó¤ò httpd.conf ¤Ëµ½Ò¤Ç¤¤Þ¤¹¡£
=== EstraierNode
Hyper Estraier ¤Î¥Î¡¼¥É¥µ¡¼¥Ð¤È¥Î¡¼¥É¤ò»ØÄꤷ¤Þ¤¹¡£ »ØÄꤷ¤Ê¤±¤ì¤Ð mod_estraier ¤Ïưºî¤·¤Þ¤»¤ó¡£
=== EstraierUser, EstraierPass
¥Î¡¼¥É¥µ¡¼¥Ð¤Î¥æ¡¼¥¶Ì¾¡¢¥Ñ¥¹¥ï¡¼¥É¤ò»ØÄꤷ¤Þ¤¹¡£ »ØÄꤷ¤Ê¤±¤ì¤Ð mod_estraier ¤Ïưºî¤·¤Þ¤»¤ó¡£
=== EstraierProxyHost, EstraierProxyPort
¥Î¡¼¥É¥µ¡¼¥Ð¤Ë¥¢¥&hibar;¥»¥¹¤¹¤ëºÝ¤Ë
HTTP ¥×¥í¥¥·¤ò»ÈÍѤ¹¤ë¾ì¹ç¤Ë»ØÄꤷ¤Þ¤¹¡£
¾Êά¤¹¤ë¤È¥×¥í¥¥·¤ò»È¤ï¤Ê¤¤ÀßÄê¤È¤Ê¤ê¤Þ¤¹¡£
=== EstraierTimeout
¥Î¡¼¥É¥µ¡¼¥Ð¤Ë¥¢¥&hibar;¥»¥¹¤¹¤ëºÝ¤Î¥¿¥¤¥à¥¢¥¦¥È¤òÉäǻØÄꤷ¤Þ¤¹¡£ ¥Ç¥Õ¥©¥ë¥È¤Ï5ÉäȤʤäƤ¤¤Þ¤¹¡£
=== EstraierDenyURI
DB ¤ËÅÐÏ¿¤·¤Ê¤¤ URI ¤òÀµµ¬É½¸½¤Ç»ØÄꤷ¤Þ¤¹¡£ Î㤨¤Ð google ¤ò DB ¤ËÅÐÏ¿¤·¤¿¤&hibar;¤Ê¤¤¾ì¹ç¤Ï¡¢
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 ¤Î¥Þ¥·¥ó¤Ç¤Ï¸ú²Ì¤¬Â礤&hibar;¤Ê¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£
¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï off ¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
=== EstraierDenyRequestHeader
¥ê¥&hibar;¥¨¥¹¥È¥Ø¥Ã¥À¤Î¾ò·ï¤Ë¤è¤Ã¤Æ DB ¤ËÅÐÏ¿¤·¤Ê¤¤¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ Î㤨¤Ð
EstraierDenyRequestHeader Authorization .*
¤Ê¤É¤È¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢Ç§¾Ú¤¬¤«¤«¤Ã¤Æ¤¤¤ë¾ì½ê¤ò
DB ¤ËÅÐÏ¿¤·¤Ê¤¤¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
¤³¤Î¾ò·ï¤Ï¥Ø¥Ã¥À¡¦ÆâÍÆ¤È¤â¤ËÀµµ¬É½¸½¤Çµ½Ò¤·¤Þ¤¹¡£
=== EstraierDenyResponseHeader
¥ì¥¹¥Ý¥ó¥¹¥Ø¥Ã¥À¤Î¾ò·ï¤Ë¤è¤Ã¤Æ DB ¤ËÅÐÏ¿¤·¤Ê¤¤¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
=== EstraierUseWeight
Ê£¿ô²ó»²¾È¤·¤¿ URL ¤Ë½Å¤ß¤ò¤Ä¤±¤Æ¤¤¤&hibar;¤è¤¦¤Ë¤Ç¤¤Þ¤¹¡£ ¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï off ¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
=== EstraierFilterCommand
ÆÃÄê¤Î Content-Type ¤ËÂФ·¤Æ¥Õ¥£¥ë¥¿¤Ë¤¹¤ë¥³¥Þ¥ó¥É¤ò»ØÄꤷ¤Þ¤¹¡£ Î㤨¤Ð
EstraierFilterCommand ^application/pdf H@/usr/local/share/hyperestraier/filter/estfxpdftohtml
¤Ê¤É¤È¤¹¤ë¤È pdf ¤ò Hyper Estraier ÉÕ°¤Î estfxpdftohtml ¤ò ÍѤ¤¤Æ¥Õ¥£¥ë¥¿¤¹¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£¥Õ¥£¥ë¥¿¤µ¤ì¤¿¸å¤Îʸ½ñ¤¬¡¢ html ¤Ê¤é H@ ¡¢ text ¤Ê¤é T@ ¤ò¥³¥Þ¥ó¥É¤ËÁ°ÃÖ¤·¤Æ»ØÄꤷ¤Æ²¼¤µ¤¤¡£ ¥Õ¥£¥ë¥¿¤¬Ê¸½ñ¥É¥é¥Õ¥È¤ËÊÑ´¹¤¹¤ë¾ì¹ç¤Ï²¿¤â¤Ä¤±¤Ê¤&hibar;¤Æ¤«¤Þ¤¤¤Þ¤»¤ó¡£
=== EstraierFilterTmpdir
¾åµ¥Õ¥£¥ë¥¿¥³¥Þ¥ó¥É¤¬»ÈÍѤ¹¤ë°ì»þ¥Ç¥£¥ì¥&hibar;¥È¥ê¤ò»ØÄꤷ¤Þ¤¹¡£ Î㤨¤Ð
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. ¤¬¤¢¤ë¾ì½ê¤Ë½ñ¤´¹¤¨¤Æ¤&hibar;¤À¤µ¤¤¡£
¤³¤ÎÀßÄê¤ò¤·¤Æ¡¢ http://localhost/moe/ ¤Ë¥¢¥&hibar;¥»¥¹¤¹¤ë¤È ¤³¤Î´Ê°×¥µ¡¼¥Á¥ã¤òÍѤ¤¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
¤³¤Î¥µ¡¼¥Á¥ã¤Ç¤Ï Google ¤Ë»÷¤¿µË¡¤Ç¸¡º÷¾ò·ï¤ò»ØÄê¤Ç¤¤Þ¤¹¡£ ¤Ä¤Þ¤ê¡¢ OR ¤ä | ¤ò»ÈÍѤ¹¤ë¤È or ¸¡º÷¤¬¤Ç¤¡¢ ¸¡º÷¸ì¤ò - ¤Ç»Ï¤á¤ë¤È¤½¤Îñ¸ì¤ò³°¤¹¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ link:URI ¤Ç URI ¤Ë¥ê¥ó¥&hibar;¤·¤Æ¤¤¤ë¥µ¥¤¥È¤òÃê½Ð¤Ç¤¡¢ 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>
¤Ê¤É¤ÈÀßÄꤷ¤Æ¡¢¤³¤ì¤ò¥×¥í¥¥·¤È¤·¤Æ¥Ö¥é¥¦¥º¤·¤Æ²¼¤µ¤¤¡£
