Namazuのインストール


Namazuは、愛知大学の高橋 哲氏により開発された日本語全文検索システムです。

このNamazuはLinux版だけではなく、Windows、OS2版まであるという優れものです。

日本語の為のサーチエンジンを構築する場合にとても、優れたソフトウェアだと確信致しております。

hero-islandも、この優れたNamazuを利用させて戴きました。

Namazuは、http://www.namazu.org/から、ダウンロードできます。

ftp://kakasi.namazu.org/pub/kakasi/から、kakasi-2_2_5,tar.gzとkakasi-ext.tar.gzとkakasidict_940620.gzをダウンロードしてください、

すべてのファイルは/usr/local/srcにダウンロードしてください、

http://www2.edd.osaka-sandai.ac.jp/namazu/ja/manual.htmlにnamazuの詳しい資料がございます。


◆手順は以下のとおりで行ないます。

@KAKASIのインストール

ANamazuのインストール

BNamazuの設定

CApacheの設定











◆KAKASIのインストール
ダウンロードをしたKAKASIの最新Versionは2.3.1でした。
# kakasi -h                                KAKASIがインストールされているか調べます。
kakasi: Comand not found.            KAKASIがインストールされていない状態です。

# cd /usr/local/src

/usr/local/src# tar zxvf kakasi-2_3_1_tar.gz                           kakasi-2_2_5_tar.gzの解凍   

/usr/local/src# cd kakasi-2.3.1

/usr/local/src/kakasi-2.3.1# mkdir /usr/local/lib/kakasi                                                              /usr/local/libにkakasiのディレクトリーを作成する。

/usr/local/src/kakasi-2.3.1# ./configure  

/usr/local/src/kakasi-2.3.1# make  

/usr/local/src/kakasi-2.3.1# su  

/usr/local/src/kakasi-2.3.1# make install  



ここでKAKASIのインストールは終了です。




KAKASIのインストール確認をします。
/usr/local/src/kakasi-2.3.1#  cd /root
 
# kakasi -h

kakasiに関する情報が表示されます。メッセージの一番下に、以下のメッセージが表示されるとkakasiのpatchは成功です。

-w:wakatigaki mode (added by H.Baba,sun Jul  7  16:58:40 JST 1996)



トップへ戻る






◆Namazuのインストール

ダウンロードをしたNamazuの最新Versionは2.0.4でした。

# cd /usr/local/src

/usr/local/src# tar zvxf namazu-1_3_0_11.tar.gz      namezu-2.0.4.tar.gzの解凍    

/usr/local/src# cd namazu-1.3.0.11/src

/usr/local/src/namazu-1.3.0.11/src# ./configure

/usr/local/src/namazu-1.3.0.11/src# vi Makefile                       viでMakefileの赤字の部分を修正しました。

Makefileの修正(注意:apatcheが/var/libか、/usr/localか、を確認しておいてください、)
========================================================================================================================
# Generated automatically from Makefile.in by configure.

#################################################################
## Makefile for Namazu
## original of this file was made by Mr. Fumiyasu SATO. Thanks.

##################################################################
## System
## select your system (UNIX or WIN32).

SYSTEM          = UNIX

##################################################################
## Language
## (ja or en).

LANGUAGE        = ja


##################################################################
## Directories

BASEDIR         = /usr/local
CGIDIR          = /var/lib/apache/cgi-bin
NAMAZUDIR       = $(BASEDIR)/namazu
BINDIR_SYS      = $(BASEDIR)/bin  # install 'namazu' 'mknmz' command.
BINDIR          = $(NAMAZUDIR)/bin
INDEXDIR        = $(NAMAZUDIR)/index
DOCDIR          = $(NAMAZUDIR)/doc
LIBDIR          = $(NAMAZUDIR)/lib
CONTRIBDIR      = $(NAMAZUDIR)/contrib

##################################################################
## Pathname of namazu.conf

OPT_NAMAZU_CONF         = $(LIBDIR)/namazu.conf

##################################################################
## Programs' pathname
## if you intend to use Namazu with Win32, you should describe
## path by using \\\\ string for path separator.

OPT_PATH_PERL           = /usr/bin/perl
OPT_PATH_NKF            = /usr/bin/nkf
OPT_PATH_KAKASI         = /usr/local/bin/kakasi
OPT_PATH_CHASEN         = not_found

## Example for Win32
#OPT_PATH_NKF           = c:\\\\usr\\\\local\\\\bin\\\\nkf32
#OPT_PATH_KAKASI                = c:\\\\usr\\\\local\\\\bin\\\\kakasi

##################################################################
## Administrator's email address

OPT_ADMIN_EMAIL         = hirosima@hero-island.ne.jp

##################################################################
## CGI-BIN directory
## unimportant

OPT_URL_CGIBIN  = /cgi-bin

##################################################################
## Pathname of Helper Programs
##  * OPT_HELPER_ZCAT  :  program that expand compressed file
##  * OPT_HELPER_MAN   :  program that format man file

OPT_HELPER_ZCAT         = /bin/zcat
OPT_HELPER_MAN          = /usr/bin/groff -man -Tnippon

##################################################################
## Scoring method
##   * SIMPLE :  score is simply calculated by term frequency
##   * TFIDF  :  score is calculated by tfidf method
##     (It's meaningful when query contains two or over keywords)

SCORING         = TFIDF

##################################################################
## Target for Make
##   * mknmz       :  Indexer
##   * wdnmz       :  Program to print registered words
##   * rvnmz       :  Program to reverse the byte order
##   * clnmz       :  Program to convert URL in NMZ.f
##   * vfnmz       :  Program to view NMZ.f as HTML with lynx
##   * gcnmz       :  Program to collect garbage in NMZ.*
##   * gtnmz       :  Program to check the number of total indexed files
##   * mailutime   :  Program to modify file time stamp
##   * documents   :  same as left description :-)
##   * namazu.cgi  :  CGI     executable  (copy of namazu)
##   * namazu      :  UNIX    executable  
##   * namazu.exe  :  Win32   executable  (copy of namazu)

TARGET          = mknmz wdnmz rvnmz clnmz vfnmz mailutime gcnmz gtnmz\
                  namazu namazu.cgi

##################################################################
## Target Files
## target file for indexing (case insensitive)
## ("_default" is a file httpdown would generate.)
## do *not* use '$' and '^' regular expression meta charactors.
## that will be automatically appended by mknmz.pl.
##
## *CAUTION*: '\' -> '\\', '$' -> '$$'

OPT_TARGET_FILE = .*\\.html?|.*\\.txt|.*_default

##################################################################
## Deny Files
## this regular expression describes the names of the files which
## you do *not* want to index (case insensitive). this setting is
## effective when mknmz runs with -a option.
## do *not* use '$' and '^' regular expression meta charactor.
## that will be automatically appended by mknmz.pl.
##
## *CAUTION*: '\' -> '\\', '$' -> '$$'

OPT_DENY_FILE   = .*\\.gif|.*\\.(jpg|jpeg)|.*\\.tar\\.gz|core|.*\\.bak|.*~|\\..*|\\x23.*|NMZ\\..*

##################################################################
## Directory Index
## name of the file or files which can be abbreviated.
## (specify by regular expression)
## e.g. index.html|index.htm|Default.html
## it's useful to use Namazu as WWW search engine.
## ("_default" would be made by httpdown)

OPT_DEFAULT_FILE                = _default

##################################################################
## On Memory Max
## max size of memory allocated by index process.
## if you have much memory machine, you can increase this value
## and indexing speed will improve.

OPT_ON_MEMORY_MAX       = 15000000            初期値は5MBです。インデックス作成を行なう時のメモリーサイズ指定です。 

##################################################################
## File Size Limitation
## the file larger than this value may not allowed to be indexed.

OPT_FILE_SIZE_LIMIT     = 600000

##################################################################
## Robots.txt
OPT_HTDOCUMENT_ROOT     = /var/lib/apache/share/htdocs
OPT_HTDOCUMENT_ROOT_URL_PREFIX  = http://www.hero-island.ne.jp/
OPT_ROBOTS_EXCLUDE_URLS = ''

##################################################################
## Japanese Processor
##   * KAKASI       :  use KAKASI
##   * CHASEN       :  use ChaSen
##   * CHASEN_MORPH :  use ChaSen with morphological processing

WAKATI            = KAKASI

##################################################################
## Defines
##   * -DNOCONF        : no use namazu.conf

DEFINES = -DINDEXDIR=\"$(INDEXDIR)\" -DSCORING=$(SCORING) \
        -D$(SYSTEM) -DOPT_NAMAZU_CONF=\"$(OPT_NAMAZU_CONF)\" \
        -DLANGUAGE=\"$(LANGUAGE)\" -DMSIE4MACFIX

##################################################################
## General Set-up

CC              = gcc
DEFS            =  -DHAVE_LIBM=1 -DSTDC_HEADERS=1 -DHAVE_SYS_WAIT_H=1 -DHAVE_FCNTL_H=1
-DHAVE_UNISTD_H=1 -DHAVE_ALLOCA_H=1 -DHAVE_ALLOCA=1 -DHAVE_RE_COMP=1 
-DHAVE_MEMMOVE=1 
AR              = ar cq
DEPEND          = makedepend
RANLIB          = ranlib
RM              = rm -f
ARCDIR          = ../ARC

##################################################################
## Flags
## optimization option and etc.

CFLAGS          = -O2 $(DEFINES) $(DEFS)  -Wall $(INCLUDES)
LDFLAGS         = -lm
EXTRA_CFLAGS    =
EXTRA_LDFLAGS   =
INCLUDES        =

##################################################################
## Object Files

SRCS    =       namazu.c codeconv.c messages.c parser.c cgi.c \
                wakati.c conf.c hlist.c output.c search.c \
                values.c form.c re_match.c regex.c util.c seed.c

OBJS    =       ${SRCS:.c=.o}

##################################################################

.c.o:
        $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c $*.c

all:    $(TARGET)

mknmz: mknmz.pl
        rm -f $@
        sed -e 's!%OPT_PATH_PERL%!$(OPT_PATH_PERL)!g' \
            -e 's!%OPT_SYSTEM%!$(SYSTEM)!g' \
            -e 's!%OPT_PATH_NKF%!$(OPT_PATH_NKF)!g' \
            -e 's!%OPT_PATH_KAKASI%!$(OPT_PATH_KAKASI)!g' \
            -e 's!%OPT_PATH_CHASEN%!$(OPT_PATH_CHASEN)!g' \
            -e 's!%OPT_HELPER_ZCAT%!$(OPT_HELPER_ZCAT)!g' \
            -e 's!%OPT_HELPER_MAN%!$(OPT_HELPER_MAN)!g' \
            -e 's!%OPT_WAKATI_DEFAULT%!$(WAKATI)!g' \
            -e 's!%OPT_ADMIN_EMAIL%!$(OPT_ADMIN_EMAIL)!g' \
            -e 's!%OPT_ADMIN_NAME%!$(OPT_ADMIN_NAME)!g' \
            -e 's!%OPT_URL_CGIBIN%!$(OPT_URL_CGIBIN)!g' \
            -e 's!%OPT_TARGET_FILE%!$(OPT_TARGET_FILE)!g' \
            -e 's!%OPT_DENY_FILE%!$(OPT_DENY_FILE)!g' \
            -e 's!%OPT_DEFAULT_FILE%!$(OPT_DEFAULT_FILE)!g' \
            -e 's!%OPT_ON_MEMORY_MAX%!$(OPT_ON_MEMORY_MAX)!g' \
            -e 's!%OPT_FILE_SIZE_LIMIT%!$(OPT_FILE_SIZE_LIMIT)!g' \
            -e 's!%OPT_LIBDIR%!$(LIBDIR)!g' \
            -e 's!%OPT_LANGUAGE%!$(LANGUAGE)!g' \
            -e 's!%OPT_HTDOCUMENT_ROOT%!$(OPT_HTDOCUMENT_ROOT)!g' \
            -e 's!%OPT_HTDOCUMENT_ROOT_URL_PREFIX%!$(OPT_HTDOCUMENT_ROOT_URL_PREFIX)!g' \
            -e 's!%OPT_ROBOTS_EXCLUDE_URLS%!$(OPT_ROBOTS_EXCLUDE_URLS)!g' \
            mknmz.pl > $@
        chmod +x $@

wdnmz: wdnmz.pl
        rm -f $@
        sed -e 's!%OPT_PATH_PERL%!$(OPT_PATH_PERL)!g' \
            -e 's!%OPT_SYSTEM%!$(SYSTEM)!g' \
            -e 's!%OPT_PATH_NKF%!$(OPT_PATH_NKF)!g' \
            wdnmz.pl > $@
        chmod +x $@

vfnmz: vfnmz.pl
        rm -f $@
        sed -e 's!%OPT_PATH_PERL%!$(OPT_PATH_PERL)!g' \
            -e 's!%OPT_SYSTEM%!$(SYSTEM)!g' \
            -e 's!%OPT_PATH_NKF%!$(OPT_PATH_NKF)!g' \
            vfnmz.pl > $@
        chmod +x $@

gcnmz: gcnmz.pl
        rm -f $@
        sed -e 's!%OPT_PATH_PERL%!$(OPT_PATH_PERL)!g' \
            gcnmz.pl > $@
        chmod +x $@

gtnmz: gtnmz.pl
        rm -f $@
        sed -e 's!%OPT_PATH_PERL%!$(OPT_PATH_PERL)!g' \
            gtnmz.pl > $@
        chmod +x $@

mailutime: mailutime.pl
        rm -f $@
        sed -e 's!%OPT_PATH_PERL%!$(OPT_PATH_PERL)!g' \
            mailutime.pl > $@
        chmod +x $@

clnmz: clnmz.pl
        rm -f $@
        sed -e 's!%OPT_PATH_PERL%!$(OPT_PATH_PERL)!g' \
            -e 's!%OPT_SYSTEM%!$(SYSTEM)!g' \
            -e 's!%OPT_PATH_NKF%!$(OPT_PATH_NKF)!g' \
            clnmz.pl > $@
        chmod +x $@

rvnmz: rvnmz.pl
        rm -f $@
        sed -e 's!%OPT_PATH_PERL%!$(OPT_PATH_PERL)!g' \
            -e 's!%OPT_SYSTEM%!$(SYSTEM)!g' \
            -e 's!%OPT_PATH_NKF%!$(OPT_PATH_NKF)!g' \
            rvnmz.pl > $@
        chmod +x $@

namazu: $(OBJS)
        $(CC) $(OBJS) $(LDFLAGS) $(EXTRA_LDFLAGS)-o $@

namazu.cgi: namazu
        cp namazu namazu.cgi      
namazu.exe: namazu
        cp namazu namazu.exe

install_cgi: all
        if [ ! -d $(CGIDIR) ]; then \
            mkdir -p $(CGIDIR); \
        fi
        cp namazu.cgi $(CGIDIR)

install: all
        if [ ! -d $(BINDIR) ]; then \
            mkdir -p $(BINDIR); \
        fi
        if [ ! -d $(INDEXDIR) ]; then \
            mkdir -p $(INDEXDIR); \
        fi
        if [ ! -d "$(DOCDIR)/ja" ]; then \
            mkdir -p "$(DOCDIR)/ja"; \
        fi
        if [ ! -d "$(DOCDIR)/en" ]; then \
            mkdir -p "$(DOCDIR)/en"; \
        fi
        if [ ! -d $(LIBDIR) ]; then \
            mkdir -p $(LIBDIR); \
        fi
        if [ ! -d $(CONTRIBDIR) ]; then \
            mkdir -p $(CONTRIBDIR); \
        fi
        if [ ! -d $(BINDIR_SYS) ]; then \
            mkdir -p $(BINDIR_SYS); \
        fi
        cp mknmz wdnmz rvnmz clnmz namazu vfnmz mailutime gcnmz gtnmz $(BINDIR)
        cp ../COPYING ../ToDo ../ChangeLog $(DOCDIR)
        cp ../README.ja ../doc/ja/* "$(DOCDIR)/ja"
        cp ../README.en ../doc/en/* "$(DOCDIR)/en"
        cp ../lib/* $(LIBDIR)
        cp ../contrib/* $(CONTRIBDIR)
        cp namazu mknmz $(BINDIR_SYS)

clean:
        $(RM) $(TARGET) *.o config.cache config.log config.status

cleanall: clean
        #$(DEPEND) -- --
        $(RM) Makefile.bak

depend:
#       $(DEPEND) -- $(CFLAGS) -- $(SRCS)

tar:
        $(MAKE) cleanall
        (ARCHIVE=`pwd|sed 's@[^/]*/@@g'`; \
            ( \
                cd ..; \
                tar cf - $${ARCHIVE}/* | \
                gzip -c \
            ) > ${ARCDIR}/$${ARCHIVE}.tar.gz \
        )
=========================================================================================================================


/usr/local/src/namazu-1.3.0.11/src# make   
                    
/usr/local/src/namazu-1.3.0.11/src su  
                     
/usr/local/src/namazu-1.3.0.11/src make install    

/usr/local/src/namazu-1.3.0.11/src cd /root                           ROOTに戻って正常にインストールできたかテストをして見ました。

# mknmz /usr/local/namazu/doc                /usr/local/namazu/docにあるhtmlファイルでインデックスを作成します。

#namazu lynx .                                       検索結果が見れます。                                     


トップへ戻る






◆Namazuの設定

# cd /usr/local/namazu/lib                

# cd /usr/local/namazu/libcp namazu.conf-dist namazu.conf     namazu.conf-distをnamazu.confにコピーします。      

# cd /usr/local/namazu/libvi namazu.conf                      namazu.confを以下のように修正しました。    

# This is the Namazu configuration file.
#   originally, this file is named 'namazu.conf-dist'. so you should
#   copy this to 'namazu.conf' to use.
#
#   item and value are MUST be separated with TAB character.
#   see "manual.html#NAMAZU_CONF" for detailed information.
#     
#       * INDEX   : Pathname where index file (NMZ.*) is placed.
#       * REPLACE : Replace URL string for search result output.
#                   describe by TARGET, REPLACEMENT order. 
#                   if you do not want to do this replacement in command
#                   line use, you can run 'namazu' with -U option and 
#                   avoid this processing.
#       * BASE    : append  to search result HTML.
#                   this value must terminate with '/' or '\' character.
#       * LOGGING : set OFF to turn off search keyword logging. 
#                   default: logging ON (to NMZ.slog)
#       * LANG    : set language code registrated in ISO 639
#                   such as `ja', `en', `de', and etc.
#                   if you set 'de' to this, namazu would use 
#                   NMZ.(head|foot|body|msg).de as message files.
#       * SCORING : set scoring method TFIDF or SIMPLE.
#
INDEX           /var/lib/apache/htdocs/   
REPLACE         /var/lib/apache/htdocs    http://www.hero-island.ne.jp/
BASE            http://www.hero-island.ne.jp/ml/                
WAKATI          /usr/local/bin/kakasi
LOGGING         OFF
LANG            ja
SCORING         TFIDF


# su  

# mkdir /var/lib/apache/var/index      

# mknmz -o /var/lib/apache/var/index /var/lib/apache/htdocs  /var/lib/apache/var/index/の下にインデックスを置きました。    

# cd /root

# namazu キーワード /var/lib/apache/var/index           で検索ができるかどうかを確認します。


トップへ戻る




◆Apacheの設定

  • Apacheの設定
    # cp /usr/local/bin/namazu /var/lib/apache/cgi-bin/namazu.cgi  /usr/local/bin/namazuを/var/lib/apache/share/cgi-bin/namazu.cgiにコピーすることでnamazu.cgiができる                 
    


    Apacheの設定ファイルを編集する。

    access.confの編集
    # Note that "Multiviews"must be named "explicitly" ---"Options all"
    
    # doesn't give it to you.
    
    Options Indexes FollowsymLinks をOptions Indexes FollowsymLinks ExecCGI とする。
    
    /var/lib/apache/cgi-bin>
    
    AllowOverride None
    
    Options None
    
    
    
    #が付いている場合は、#を外してください、
    


    srm.confの編集
    #ScriptAlias /cgi-bin/ /var/lib/apache/cgi-bin/
    
    #AddHandler cgi-script .cgi
    
    #が付いている場合は、#を外してください、
    


    Namazu設定ファイルの編集

    #cd /var/lib/apache/cgi-bin
    
    #cp /usr/local/namazu/lib/namazu.conf-dist .namazurc    /usr/local/namazu/lib/namazu.conf-distを.namazurc にコピーします。     
    
    #vi .namazurc
    
    INDEX           /var/lib/apache/htdocs/   
    REPLACE         /var/lib/apache/htdocs    http://www.hero-island.ne.jp/
    BASE            http://www.hero-island.ne.jp/ml/                
    WAKATI          /usr/local/bin/kakasi
    LOGGING         OFF
    LANG            ja
    SCORING         TFIDF
    


    一応これで検索フォームを作成すれば終わりですが

    より詳細につきましては、「日本語全文検索システムの構築と活用」著者:馬場 肇氏 ソフトバンク社出版 2800円+税

    の購入をお勧めいたします。この本は実に詳しく解り易く書かれていますので、ぜひ参考にしてください、


    トップへ戻る

















    LINUXのページに戻る。



    ご質問・お問い合わせ - 免責事項
    Copyright (C) 1998 hero-island. All Rights Reserved.