その他
    ホーム 技術発信 DoRuby Ludiaインストールメモ@Centos52

    Ludiaインストールメモ@Centos52

    この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

    こんにちわ、uです。

    最近、Ruby on Railsアプリケーションの全文検索システムとして、

    Hyper Estraierから、Ludia@PostgreSQLを使う事が多くなってきたので、

    CentOS 5.2へのインストール方法を、紹介したいと思います。

    # そろそろ、CentOS 5.3が出ますので、

    # CentOS 5.2を使用するのは、時期的に微妙なのですが…

    実験環境

    CentOS 5.2

    # 正確には、CentOS 5.2のxen上のゲストOS

    ludia-1.5.1

    postgresql-8.3.5

    mecab-0.97

    mecab-ipadic-2.7.0-20070801.tar.gz

    senna-1.1.4

    Ludia installationファイルの閲覧

    # ludia-1.5.1/INSTALLの通り実行。

    wget http://osdn.dl.sourceforge.jp/ludia/32461/ludia-1.5.1.tar.gz
    tar zxvf ludia-1.5.1.tar.gz 
    cd ludia-1.5.1
    less INSTALL
    

    MeCabのインストール

    以下等から、mecabを取得
    http://sourceforge.net/project/showfiles.php?group_id=177856
    
    cd /usr/local/src/
    tar zxvf mecab-0.97.tar.gz 
    cd mecab-0.97
    ./configure --with-charset=utf8
    make
    sudo make install
    

    MeCab辞書のインストール

    以下等から、mecabを取得
    http://sourceforge.net/project/showfiles.php?group_id=177856
    
    cd /usr/local/src
    tar zxvf mecab-ipadic-2.7.0-20070801.tar.gz 
    cd mecab-ipadic-2.7.0-20070801
    ./configure --with-charset=utf8
    make
    sudo make install
    

    sennaのインストール

    cd /usr/local/src
    tar zxvf senna-1.1.4.tar.gz
    cd senna-1.1.4
    ./configure
    make
    sudo make install
    

    Ludiaのインストール

    wget http://osdn.dl.sourceforge.jp/ludia/32461/ludia-1.5.1.tar.gz
    tar zxvf ludia-1.5.1.tar.gz 
    cd ludia-1.5.1
    make 
    sudo make install
    

    PostgreSQLのインストールと実行

    以下によりますと、v8.3.6だとデフォルトだとうまく入らない様です。

    http://jijixi.azito.com/cgi-bin/diary/index.rb?date=20090302

    v8.3.5では、INSTALLの通り実行すれば問題無く入るかと思います。

    cd /usr/local/src/
    tar zxvf postgresql-8.3.5.tar.gz
    cd postgresql-8.3.5
    cat INSTALL
    ./configure
    gmake
    su
    gmake install
    adduser postgres
    mkdir /usr/local/pgsql/data
    chown postgres /usr/local/pgsql/data
    su - postgres
    /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
    

    ludia-1.5.1/READMEを見てみると…

    設定ファイルの編集
    ------------------
    
    デフォルト設定でLudiaを使用する場合は、この節を飛ばしても問題ありません。
    
    Ludiaを使用するデータベースクラスタのpostgresql.confファイルに、
    以下の設定内容を追加してください。
    (custom_variable_classesの項目は必須です。
    それ以外の項目は記述しないと、デフォルト値が参照されます。)
    設定を反映するためにはPostgreSQLを再起動する必要があります。
    postgresql.confの設定が反映されていないと、
    実行時にエラーになってしまうので注意してください。
    設定内容についての詳細は、 実行時の設定_ の節を参照してください。
    ::
    
      custom_variable_classes = 'ludia'
      ludia.max_n_sort_result = 10000
      ludia.enable_seqscan = on
      ludia.seqscan_flags = 1
      ludia.sen_index_flags = 31
      ludia.max_n_index_cache = 16
      ludia.initial_n_segments = 512
    
    もしすでにcustom_variable_classesが設定されている場合は、
    そこにludiaというクラス名を追加してください。
    

    …との事なので、以下を記述

    vim /usr/local/pgsql/data/postgresql.conf
    
    #------------------------------------------------------------------------------
    # LUDIA OPTIONS
    #------------------------------------------------------------------------------
    
    custom_variable_classes = 'ludia'
    ludia.max_n_sort_result = 10000
    ludia.enable_seqscan = on
    ludia.seqscan_flags = 1
    ludia.sen_index_flags = 31
    ludia.max_n_index_cache = 16
    ludia.initial_n_segments = 512
    

    PostgreSQLの実行

    /usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data >logfile 2>&1 &
    

    Ludia対応なDBにする。

    /usr/local/pgsql/bin/createdb testdb
    /usr/local/pgsql/bin/psql -f /usr/local/pgsql/share/pgsenna2.sql testdb
    /usr/local/pgsql/bin/psql testdb
    

    確認

    後は、ludia-1.5.1/READMEの通り、

    固有のindexを作成したり、@@等の演算子を使ったSQL文が正常に動作すれば、

    PostgreSQLにLudiaが正常に組み込まれたと見てよいかと思います。

    いくつかのアプリケーションを導入する必要はありますが、

    Ludia(とPostgreSQL)のINSTALLの通り実行するだけで、

    あっけなく1時間もあれば十分に導入できるかと思います。