== suzuran README
== ライセンス
本スクリプトは,Ruby 本体のライセンスにしたがって利用することができます。
http://www.ruby-lang.org/ja/LICENSE.txt
== なにか?
Hyper Estraier を使った検索用 CGI です。
P2Pモードと関連語検索を使いたい人向けです。
検索性能は本家に付属の CGI のほうが高いので、P2Pモードを使わない人は
本家 CGI をおすすめします。
管理用ツール kimikage はまだ作成していません。
== 必要な環境
* Apache 2.2.4
* Ruby 1.8.5
* Hyper Estraier 1.4.10.
※このバージョンでしか動作確認していませんが、相性問題が発見されていたり
バージョン特有の機能を使っているわけではありません。
== サーバソフトのインストール
Apache, Ruby, QDBM, MeCab, Hyper Estraier をそれぞれインストールします。
=== Apache
省略。
=== Ruby
省略。
=== QDBM
{{{
cd /usr/local/src
wget http://qdbm.sourceforge.net/qdbm-1.8.75.tar.gz
tar -xvzf qdbm-1.8.75.tar.gz
cd qdbm-1.8.75
./configure --enable-zlib
make
make install
cd ruby
./configure
make
make install
}}}
/etc/ld.so.conf に /usr/local/lib を追加します。その後 ldconfig コマンドを実行します。
{{{
ldconfig
}}}
=== MeCab
http://mecab.sourceforge.net/
{{{
apt-get install mecab mecab-devel mecab-ipadic
}}}
※VineLinux の場合です。
=== Hyper Estraier
{{{
cd /usr/local/src
wget http://hyperestraier.sourceforge.net/hyperestraier-1.4.10.tar.gz
tar -xvzf hyperestraier-1.4.10.tar.gz
cd hyperestraier-1.4.10
./configure --enable-mecab
make
make install
cd rubynative
./configure
make
make install
cd ../rubypure/
./configure
make
make install
}}}
※rubynative はいまのところ使っていません。
== Hyper Estraier の設定
Hyper Estraier を P2P モードで起動させます。
本家ドキュメントをみてがんばってください。
http://hyperestraier.sourceforge.net/nguide-ja.html
以下は、データ置場を /usr/local/hyper_estraier/casket にする場合の一例です。
=== ディレクトリを作成します
{{{
mkdir -p /usr/local/hyper_estraier/casket
}}}
=== 初期化します
{{{
estmaster init /usr/local/hyper_estraier/casket
}}}
=== サーバをデーモンモードで開始します
※hyperestraierd スクリプトは suzuran の管理ツール kimikage に含まれています。
{{{
/etc/init.d/hyperestraierd start
}}}
コマンドで起動させる場合は
{{{
estmaster start -bg /usr/local/hyper_estraier/casket
}}}
ちなみに止めるのは
{{{
/etc/init.d/hyperestraierd stop
}}}
です。
=== ブラウザで http://example.com:1978/master_ui を開きます
デフォルトのユーザ名は admin パスワードも admin です。
=== 「Manage Users」をクリックします
ユーザを追加します。
name, passwd, flags を入力します。flags は s にします。
hogesan, pass, s
=== ユーザ admin は消しておきます
=== 「Manage Nodes」をクリックします
name, label を入力します。
hogefuga, hogefuga
=== Hyper Estraier に文書を登録します
tips の「初期導入の効率化」が参考になります。
http://hyperestraier.sourceforge.net/nguide-ja.html#tips
cron での追加文書の登録も同じコマンドでできます。
ユーザ名、パスワード、ノード名は ブラウザで設定したものです。
登録中に http://example.com:1978/master_ui を見るとインデックスに
追加されてく様子が確認できます。
{{{
#!/bin/bash
find /HTML がおいてあるディレクトリ/ -type f -name '*.html' |
while read file ; do
estcmd draft -fh -il ja "$file" |
estcall put -auth ユーザ名 パスワード http://localhost:1978/node/ノード名
done
}}}
24時間以内に更新された HTML ファイルを追加するの場合の一例です。
{{{
#!/bin/bash
find /HTML がおいてあるディレクトリ/ -type f -name '*.html' -mmin -3600 |
while read file ; do
estcmd draft -fh -il ja "$file" |
estcall put -auth ユーザ名 パスワード http://localhost:1978/node/ノード名
done
}}}
=== 類似検索用の DB を作成します
一度 Hyper Estraier を止めます。
{{{
/etc/init.d/hyperestraierd stop
}}}
キーワード DB を作成します。作りなおしは -fc オプションをつけます。
形態素解析器を使う場合は、-um オプションをつけます。
{{{
estcmd extkeys -um /usr/local/hyper_estraier/casket/_node/hogefuga
}}}
サーバをデーモンモードで開始します
{{{
/etc/init.d/hyperestraierd start
}}}
=== おわり
これで CGI が動くはず…です。
== suzuran のインストール
=== 展開します
suzuran.tar.gz を展開してできたディレクトリを Web サーバから見えるとこにおきます。
{{{
tar -xvzf suzuran.tar.gz
}}}
=== 設定
suzuran.conf を環境にあわせて編集します。
{{{
# suzuran 設定ファイル
# ホームページ
HOMEPAGE = "http://example.com/"
}}}
ホームページへ戻るリンクの移動先です。
{{{
# Hyper Estraier ノード URL
NODE_URL = "http://localhost:1978/node/hogefuga"
}}}
hogefuga の部分は Web で設定したものに書き換えてください。
{{{
# HTMLコンテンツディレクトリ
PUBLIC_HTML = "/home/hogefuga/public_html/"
}}}
インデックス作成時に指定した HTML のディレクトリです。
Hyper Estraier 内ではディレクトリ名で保存されているので
URLへの置換用に使っています。
{{{
# 関連語辞書
RELWORDS_DB = "relwords.qdb"
}}}
関連語DBのファイル名です。後ほど作成します。
index.rb と違うディレクトリに配置する場合は、ディレクトリ名も指定します。
{{{
# 関連語表示上限数
RELWORDS_MAX = 5
}}}
関連語表示数の上限です。
{{{
# 1ページの表示数
LIST = 10
}}}
検索結果の表示数のデフォルト値です。最大値は 100 です。
{{{
# 表示順のデフォルト
#SORT_TYPE_DEFAULT = "[SCA]" # スコア順
SORT_TYPE_DEFAULT = "@mdate NUMD" # 日付(新しい順)
}}}
検索結果の表示順のデフォルトです。
* "@mdate NUMD" # 日付 (新しい順)
* "@mdate NUMA" # 日付 (古い順)
* "@title STRA" # 題名 (昇順)
* "@title STRD" # 題名 (降順)
* "@size NUMA" # 文書の長さ (短い順)
* "@size NUMD" # 文書の長さ (長い順)
* "@uri STRA" # ホームページアドレス (昇順)
* "@uri STRD" # ホームページアドレス (降順)
{{{
# フォームラジオボタンラベル
RADIO = ["サイト全体から検索", "ほげふがから検索"]
# ラジオボタン選択時の検索オプション
SEARCH_OPTION = ["", "@uri STRINC hogefuga"]
}}}
検索条件のラジオボタン表示用です。
デフォルトでは、全体から検索と、URL に hogefuga の文字が
含まれるもの、の2つが設定されています。
{{{
# 検索結果見出し
SEARCH_HEADER_TITLE = "ほげふがサイト内検索"
}}}
タイトルです。
{{{
# フッター
HTML_FOOTER = <<-_HTML
<div id="footerLink">
<a href="#{HOMEPAGE}">TOP</a> -
</div>
_HTML
}}}
フッターです。特に制限はありません。
== 関連語辞書の作成
{{{
estcmd words -nl -kt /usr/local/hyper_estraier/casket/_node/hogefuga > hoge.tsv
cat hoge.tsv | vltsv import relwords.qdb
}}}
relwords.qdb を suzuran/suzuran/index.rb と同じディレクトリにコピーします。
== おわり
ブラウザから閲覧すると動くはず・・・動くといいな。
== 作者
Project suzuran