Home > manual  > V2.0 for Linux

V2.0 for Linux

1. 動作環境

 バージョン2は、以下の環境で開発・稼動確認をしています(2005/3/1現在)。いずれもフリーソフトとして入手可能です。

 ・Fedora Core 3
 ・Apache 2.0.52
 ・postfix-2.1.5-2.4
 ・MySQL 4.1.9
 ・Ruby 1.8.2
 ・eruby 1.0.5
 ・mod_ruby 1.2.4
 ・mysql-ruby 2.5.1
 ・ChaSen 2.3.3
 ・ipadic 2.7.0
 ・Ruby/ChaSen 1.6

 原則として、各ソフトは上記以上のバージョンの利用を強くお勧めします。特に、Ruby 1.8.2(またはそれ以上)、MySQL 4.1.x、ChaSen 2.3.x は必須です。Ruby 1.6.x、MySQL 3.x/4.0、Chasen 2.2.xでは正常に動作しません。
 SUZAKU バージョン2の文字コードは、UTF-8を前提としています。

投稿者 webmaster : 2005年03月09日 00:03 | コメント (0) | トラックバック (0)

2. 前提ソフトのインストール

 Fedora Core 3を例にとって、前提ソフトのインストール手順を説明します。
 なお、下記の手順で # で始まる部分は root で実行してください。
 各ソフトをダウンロードするには、こちらを参照して下さい。
 vi コマンドに続く、--- から --- までの部分は、ファイルの編集内容です。

2.1 Fedora Core 3

 サーバーとして使用する場合、不要なパッケージは極力インストールしないようにします。
 パッケージの選択では、「サーバー」で、「開発ツール」だけを選択し、その後、必要なパッケージだけを追加でインストールします。
 所定の手順に従って、インターネットにアクセスできるようにしておきます。
 パッケージ管理ソフトとして、yumも利用可能な状態にしておきます。

 個人の自宅のPCサーバーでも、常時接続可能な回線(ADSLなど)とダイナミックDNSサービスを使用すれば、外部に公開することができます。ただし、この際には、別途ファイアウォールを立てる、ADSLルータモデムのIPフィルタリング機能できちんとアクセス制限をかける、サーバー側でも不要なサービスを停止しておく、などのセキュリティ面での十分な対策が必要です。
 この辺りの詳しい設定方法については、多くの書籍が発売されているので、そちらを参考にしてください。
 Fedora Coreでのサーバー構築に関しては、以下のサイトが参考になります。
  ・Fedoraで自宅サーバー構築
 なお、前提とする文字コードは、今後一般化すると考えられるUTF-8としました。

2.2 Apacheのインストール

 webサーバーのApacheをインストールします。

$ su
# yum -y install httpd

 Apacheを起動して、インストールがうまくいったことを確認します。

# /etc/rc.d/init.d/httpd start

 設定ファイルを修正します。

# vi /etc/httpd/conf/httpd.conf
---
ServerTokens Prod
ServerAdmin webmaster@your-host-name
ServerName your-host-name
DocumentRoot "/var/www/html"

<Directory />
 Options None
 AllowOverride None 
</Directory>

<Directory "/var/www/html">
 Options None
</Directory>

<Directory "/var/www/cgi-bin">
 Options ExecCGI
</Directory>

HostnameLookups Off
CustomLog logs/access_log combined
ServerSignature Off
#AddDefaultCharset UTF-8  <- コメントアウト
---

 再起動時にApacheを自動起動するように設定します。

# /sbin/chkconfig httpd on

2.3 Postfixの設定

 メールサーバーのPostfixをインストールします。
 (手順は省略)

2.4 MySQLのインストール

 MySQL 4.1のrpmパッケージをインストールします。Fedora Core 3に含まれるのはMySQL 3.23.x なので、http://www.softagency.co.jp/MySQL/downloads/mysql/4.1.htmlから、RPMパッケージ(Server、Client programs、Libraries and header files、Dynamic client libraries(including 3.23.x libraries))をダウンロードします。

# rpm -Uvh MySQL-server-4.1.9-0.i386.rpm MySQL-client-4.1.9-0.i386.rpm MySQL-devel-4.1.9-0.i386.rpm MySQL-shared-compat-4.1.9-0.i386.rpm

(注)既にMySQLの3.X/4.0を使用している場合は、可能であれば、一旦それらをアンインストール(データベースファイルも削除)した後、4.1を新規インストールすることをお奨めします。どうしてもアップグレードする必要がある場合には、こちらを参照して下さい。

 設定ファイルを修正します。

# vi /etc/my.cnf
---
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
default-character-set=utf8  <-- 追加

[mysql]
default-character-set=utf8  <-- 追加

[mysqldump]
default-character-set=utf8  <-- 追加

[mysql.server]
user=mysql
basedir=/var/lib

[safe_mysqld]
err-log=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
---

 MySQLを起動します。

# /etc/rc.d/init.d/mysqld start

 再起動時に、MySQLを自動起動するように設定します。

# /sbin/chkconfig mysqld on

 MySQLのroot(システムのrootではない)のパスワードを設定します。

# mysqladmin -u root password "your_mysql_root_password"

2.5 Rubyのインストール

 Rubyは、まつもとゆきひろさんが開発した、オブジェクト指向のスクリプト言語です。
 以下の手順で、Rubyをインストールします。

# yum -y install ruby
# ruby --version

2.6 erubyのインストール

 erubyを使うと、htmlの中にRubyのスクリプトを埋め込むことができます。
 後述するmod_rubyと組み合わせて使用する場合、Fedora Core に含まれるrpmパッケージは使えません。ソースからインストールします。ソースは、euby/mod_rubyのホームページからダウンロードします。
 以下の手順で、erubyをインストールします。

# yum -y install ruby-devel
# cd /usr/local/src
# tar zxfv eruby-1.0.5.tar.gz
# cd eruby-1.0.5`
# ./configure.rb --with-charset=utf-8 --enable-shared
# make
# make install
# eruby --version

2.7 mod_rubyのインストール

 CGIでは、実行時、毎回プロセスが起動されるため、処理のオーバーヘッドが大きくなります。mod_rubyを使用すると、erubyスクリプトの実行時に毎回プロセスが起動されることがなくなるため、処理効率が向上します。
 ソースをeuby/mod_rubyのホームページからダウンロードします。
 以下の手順で、mod_rubyをインストールします。

# yum -y install httpd-devel

# cd /usr/local/src
# tar zxfv mod_ruby-1.2.4.tar.gz
# cd mod_ruby.0.8.4
# ./configure.rb --enable-eruby --with-apxs=/usr/sbin/apxs
# make
# make install

# vi /etc/ld.so.conf
---
/usr/local/lib  <- 追加
---

# /sbin/ldconfig -v

 mod_rubyを有効にするため、Apacheの設定ファイルを修正します。

# vi /etc/httpd/conf/httpd.conf
--
# for mod_ruby
LoadModule ruby_module modules/mod_ruby.so

# ClearModuleList

# for mod_ruby
# AddModule mod_ruby.c

AddHandler cgi-script .cgi

#
# for Ruby/eRuby
#
<IfModule mod_ruby.c>
# for Apache::RubyRun
RubyRequire apache/ruby-run

# for Apache::ERubyRun
RubyRequire apache/eruby-run

# for development
# RubyRequire auto-reload

# for add library
RubyAddPath /usr/local/etc/suzaku/lib

# exec *.rbx as ruby scripts.
<Files *.rbx>
SetHandler ruby-object
RubyHandler Apache::RubyRun.instance
</Files>

# handle *.rhtml as eruby files.
<Files *.rhtml>
SetHandler ruby-object
RubyHandler Apache::ERubyRun.instance
</Files>
</IfModule>
--

 Apacheを再起動します。

# /etc/rc.d/init/d/httpd restart

2.8 MySQL-Rubyインタフェースのインストール

 RubyからMySQLを使用できるようにするために、MySQL-Rubyインタフェースをインストールします。
 ソースをMySQL-Rubyのホームページからダウンロードします。
 以下の手順で、MySQL-Rubyインタフェースをインストールします。

# yum -y install mysql-devel

# cd /usr/local/src
# tar zxfv mysql-ruby-2.5.1.tar.gz
# cd mysql-ruby-2.5.1

# ruby extconf.rb --with-mysql-config
# make
# make install
# /sbin/ldconfig -v
# ruby -I. ./test.rb localhost root your_mysql_root_passwd

2.9 ChaSenのインストール

 SUZAKUでは、ホームページの検索を行うために、そこに含まれる日本語の文章から、検索の際に使用するキーワードを抜き出し、インデックス(索引)としてデータベースに格納します。ChaSenはフリーの日本語形態素解析器で、SUZAKUでは日本語の文章からキーワードを抜き出す際に、文章を単語単位に分解するために使用します。
 ChaSenと、 ChaSenが使用する辞書(ipadic)のソースをChaSenのホームページからダウンロードします。
 以下の手順で、ChaSen(およびその前提ソフトのDarts)をインストールします。make時にコンパイルエラーが出るので、プログラムソースの修正が必要です。合わせて、辞書の文字コードをUTF-8に変換します。
 参考: http://pcweb.mycom.co.jp/column/yetanother/045/

# cd /usr/local/src
# tar zxfv darts-0.2.tar.gz
# cd darts-0.2
# ./configure
# make
# make check
# make install

# cd /usr/local/src
# tar zxfv chasen-2.3.3.tar.gz
# cd chasen-2.3.3

# vi lib/dartsdic.cpp
---
(177行目)
//  (const char*)keys[size] = key.data();
    keys[size] = (char*)key.data();
---

# ./configure
# make
# make install
# /sbin/ldconfig -v

 次に、ipadicをインストールします。

# cd /usr/local/src
# tar zxfv ipadic-2.7.0.tar.gz

(辞書をUTF-8に変換する)

# cp -R ipadic-2.7.0 ipadic-2.7.0-UTF8
# cd ipadic-2.7.0-UTF8
# ./configure

#vi to-utf8.sh
---
#!/bin/sh
for file in $*
do
if [ -f $file ]; then
nkf --utf8 $file > tmpfile
mv tmpfile $file
fi
done
exit
---

#chmod 755 to-utf8.sh
#./to-utf8.sh *.dic *.cha

# `chasen-config --mkchadic`/makemat -i w
# `chasen-config --mkchadic`/makeda -i w chadic *.dic
# make install

# cd /usr/local/etc
# cp chasenrc chasenrc.org
# nkf --utf8 chasenrc > chasenrc.tmp
# mv chasenrc.tmp chasenrc

# vi chasenrc
(以下の定義を追加する。これにより、英単語や数字が1文字づつ分解されないようになります。)
---
(COMPOSIT_POS ((名詞 一般) (名詞 数) (記号 アルファベット)))
---

# echo "「日本語」を扱う上で欠かせないツール。" | chasen -i w
# echo "My name is Takashi. B777 DMC-FZ1 2005.04.01." | chasen -i w

2.10 Ruby/ChaSen のインストール

 Ruby/ChaSenは、RubyスクリプトからChaSenを使用するためのインタフェース・ライブラリです。
 RAA(Ruby Application Archive)から、Ruby/ChaSenのソースをダウンロードします。
 以下の手順で、Ruby/ChaSenをインストールします。

# cd /usr/local/src
# tar zxfv chasen1.6.tar.gz
# cd chasen1.6
# ruby -rmkmf -e 'dir_config("chasen","/usr/local"); \
> have_library("stdc++"); create_makefile("chasen") if have_library("chasen")'
# make
# make install
# /sbin/ldconfig -v

投稿者 webmaster : 2005年03月09日 00:04 | コメント (0) | トラックバック (0)

3. SUZAKUのインストール

3.1 SUZAKUパッケージのインストール

 SUZAKUのDownloadページから、アーカイブ(suzaku-x.xx.tar.gz)をダウンロードし、以下の手順でインストールします。

$ su
# cd /usr/local/src
# tar zxfv suzaku-x.xx.tar.gz
# cd /usr/local/src/suzaku-x.xx/etc
# cp -R suzaku /usr/local/etc/suzaku
# cd /usr/local/src/suzaku-x.xx/html
# cp -R suzaku_sample /var/www/html/suzaku_sample
# cd /var/www/html
# chown -R your_user.your_group suzaku_sample

3.2 検索サイトの構築

 検索サイトのサンプル「suzaku_sample」を修正して、独自の検索サイトを構築します。

(1) 事前に確認/決定しておく事項

 以下の事項をあらかじめ確認/決定しておきます。

 ・検索サイトのURL
 ・管理者宛メールの送信元、送信先のメールアドレス
 ・データベース用のユーザーID、パスワード、データベース名
 ・どのようなカテゴリのホームページを検索対象とするか

 ここでは、仮に以下の前提で、設定方法の説明を行います。

 ・検索サイトのURL: http://your_site.com/eagle/
 ・管理者宛メールの送信元: webmaster@your_site.com
 ・管理者宛メールの送信先: taro@your_site.com
 ・データベース用のユーザーID: eagle_user
 ・データベース用のパスワード: abcd1234
 ・データベース名: eagle
 ・カテゴリ: 01-コンピュータ・ハードウェア、02-コンピュータ・ソフトウェア
  (01, 02はカテゴリ・コード(英数字2桁))

(2) 検索サイトのディレクトリ名と、「suzaku_conf.rb」ファイルの変更

 ディレクトリ名を変更します。

$ cd /var/www/html
$ mv suzaku_sample eagle

 「suzaku_conf.rb」ファイルの内容を修正します。

$ vi eagle/scripts/suzaku_conf.rb
---
config_file_name = "eagle.rb"
---

(3) 設定ファイルの修正

 設定ファイルを、以下のように修正します。

# cd /usr/local/suzaku/conf
# cp suzaku_sample.rb eagle.rb
# vi eagle.rb
---
# eagle.rb : 設定ファイル

# ライブラリのディレクトリパス
suzaku_libpath = "/usr/local/etc/suzaku/lib"

# MySQL データベース接続パラメータ
host = "localhost"
userid = "eagle_user"
password = "abcd1234"
database = "eagle"

# メール設定
mail_server = "localhost"
mail_from = "webmaster@your_site.com"
mail_to = "taro@your_site.com"

# ホームページ巡回時の設定
interval = 259200
time_limit = 28800
start_level = 1
max_level = 9
max_continue = 20
tmp_dir = "/var/tmp/suzaku/eagle"
log_dir = "/var/log/suzaku/eagle"
log_out = true
limit_in_same_site = true
message_out = false
force = false
auto_delete = true

# サイトのカテゴリ文字列
01 = "コンピュータ・ハードウェア"
02 = "コンピュータ・ソフトウェア"
---

 上記は設定は、システムの本番運用時の設定例です。システムの正常稼動を確認するだけなら、上記の設定のうち、以下のパラメータを

interval = 60
time_limit = 180
message_out = true
force = true

に変更しておいた方がよいでしょう。この設定では、3分間(180秒間)だけ、ホームページの巡回処理を行います。
 設定ファイルの詳しい説明は、こちらをご覧下さい。

(4) ディレクトリの作成

 作業用およびログ用のディレクトリを作成します。

# cd /var/tmp
# mkdir suzaku
# cd suzaku
# mkdir eagle
# chmod 777 eagle

# cd /var/log
# mkdir suzaku
# cd suzaku
# mkdir eagle
# chmod 777 eagle

(5) データベースの作成

 ホームページの URL や検索に使用するキーワードのインデックス(索引)を格納するデータベースを作成します。

# cd /usr/local/etc/suzaku/bin
./suzaku_run.sh ../scripts/database_setup.rb your_mysql_root_password eagle.rb
./suzaku_run.sh ../scripts/create_tables.rb eagle.rb
./suzaku_run.sh ../scripts/show_tables.rb eagle.rb

(6) URL の登録

 検索対象とするホームページの URL を登録します。ブラウザで、URL
   http://your_site_name/eagle/
にアクセスします。

 右下の「管理者モード」をクリック」すると、管理者モードのログイン画面が表示されます。

 パスワード(設定ファイルの「password =」で指定したもの)を入力し、「実行」をクリックすると、管理者モードに入ります。上部のメニューから、「サイトの新規登録」をクリックします。

 「URL」に検索対象とするホームページのトップページのURLを入力します。(必須)
 「種別」にはそのホームページの種類に応じたカテゴリーコードを入力します。(必須)
 「名称(漢字)」「名称(かな)」は、そのホームページの名称を漢字(全角)とひらがな(全角)で入力します。(必須)
 「メールアドレス」には、そのホームページの管理者のメールアドレスを入力します。(オプション)。
 「コメント」には、そのホームページに関するコメントを入力します。(オプション)

 入力したら、「実行」をクリックします。上部のメニューの「登録サイト一覧」をクリックすると、登録したホームページの一覧が表示されます。

 登録した内容の修正、削除を行うときは、「NO.」欄の該当行の数字をクリックして下さい。
 「管理者モード」を終了するには、上部のメニューの「ログオフ」をクリックして下さい。

 なお、登録したいサイトのデータを CSV形式のファイルに記述し、一括ロードすることもできます。(DownloadページのURL Loader を使用する)

(7) ホームページの巡回処理を実行する。

 ホームページの巡回処理を実行します。

# cd /usr/local/etc/suzaku/bin
# ./suzaku_run robot.rb eagle.rb &

 巡回結果は、「管理者モード」の「登録サイト一覧」、「巡回ログ」、「システム状況」で確認できます。巡回処理を途中で中止したい場合には、

# ./suzaku_run.sh stop.rb eagle.rb

を実行して下さい。

(8) 検索サイトの画像の変更

 初期状態では、検索サイトのトップページは

 となっています。
ページ上部の画像は、eagle ディレクトリの下の images/title.gif というファイルなので、あなたのサイトにふさわしい画像に変更して下さい。同じく、ページ中央の画像 images/main.gif も変更して下さい。

(9) 巡回処理の cron への登録

 巡回処理を定期的に実行するために、cron に登録します。例えば、毎日深夜0:00から巡回処理を実行するなら、以下のように登録します。

# crontab -e
---
00 00 * * * /usr/local/etc/suzaku/bin/suzaku_run.sh /usr/local/etc/suzaku/bin/ro
bot.rb eagle.rb
---

投稿者 webmaster : 2005年03月09日 00:05 | コメント (0) | トラックバック (0)

4. SUZAKUの設定

 SUZAKUの設定は、/usr/local/etc/suzaku/conf にある設定ファイルで行います。検索サイトがどの設定ファイルを使用するかは、検索サイトの scripts ディレクトリにある、suzaku_conf.rb ファイルの中で指定されています。

[suzaku_conf.rb ファイルの例 (/var/www/html/eagle/scripts/suzaku_conf.rb) ]
--------------------------------------------------
# suzaku_conf.rb : 設定ファイルの名前を定義する
config_file_name = "eagle.rb"

--------------------------------------------------

[設定ファイル例 (/usr/local/etc/suzaku/conf/eagle.rb) ]
--------------------------------------------------
# eagle.rb : 設定ファイル

# ライブラリのディレクトリパス
suzaku_libpath = "/usr/local/etc/suzaku/lib"


# MySQL データベース接続パラメータ
host = "localhost"
userid = "eagle_user"
password = "abcd1234"
database = "eagle"


# メール設定
mail_server = "localhost"
mail_from = "webmaster@your_site.com"
mail_to = "taro@your_site.com"


# ホームページ巡回時の設定
interval = 259200
time_limit = 28800
start_level = 1
max_level = 9
max_continue = 20
tmp_dir = "/var/tmp/suzaku/eagle"
log_dir = "/var/log/suzaku/eagle"
log_out = true
limit_in_same_site = true
message_out = false
force = false
auto_delete = true


# サイトのカテゴリ文字列
01 = "コンピュータ・ハードウェア"
02 = "コンピュータ・ソフトウェア"

--------------------------------------------------

 設定ファイルの各パラメータは、以下のような意味を持ちます。

パラメータ 指定する内容
suzaku_libpath SUZAKUのシステムライブラリの場所を指定する。
host 使用するMySQLのホスト名を指定する。
userid MySQLに接続するためのユーザーIDを指定する。
password MySQLに接続するためのパスワードを指定する。検索サイトの管理者モードにはいる際のパスワードとしても使用する。
database MySQLのデータベース名を指定する。
mail_server SUZAKUのシステムが発行するメール用のメールサーバーを指定する。
mail_from メールの差出人のアドレスを指定する。
mail_to メールの宛先のアドレスを指定する。
interval 該当ページに最後にアクセスしてから、ここに指定された秒数を経過するまでは、再度分析処理を行わない。
time_limit ここに指定された秒数を経過したら、巡回処理を中断する。
start_level ホームページの巡回を開始するリンクの階層の深さを指定する。通常は1(トップページ)を指定する。
max_level ホームページの巡回を終了するリンクの階層の深さを指定する。
max_continue 巡回時、ここで指定した回数を超えると、他のサイトのページに移る。同一サイトへのアクセスの集中を避けるための指定。
tmp_dir 巡回対象のページを一時的にダウンロードするディレクトリを指定する。
log_dir 巡回処理のログを出力するディレクトリを指定する。
log_out 巡回処理のログを出力するときは true を、出力しないときは false を指定する。
limit_in_same_site 巡回の際に、トップページと異なるサイトの URL を対象外としたい場合には true を指定する。他のサイトの URL も巡回したい場合は false を指定する。
message_out エラーメッセージ以外のメッセージもログに出力する場合は true を指定する。エラーメッセージだけを出力する場合は false を指定する。
force 最後に巡回してから更新されていないページは、処理をスキップしたい場合には false を指定する。すべてのページを、再度処理したい場合には true を指定する。
auto_delete 削除されたり、アクセス不能となったりしたページの情報をデータベースから自動的に削除する場合は true を指定する。削除せずに残しておきたい場合は false を指定する。
01, 02, ... サイトのカテゴリを表す文字列を指定する。カテゴリコードには、2桁の英数字を使用する。

注: interval と time_limit について  大量のサイトを巡回するために、サイトの巡回処理に24時間かかるとします。巡回処理は深夜0:00~8:00までの8時間だけ行い、3日間に分けて行いたいとします。この場合、intervalに、60(s)×60(m)×24(h)×3=259200を、time_limitには、60(s)×60(m)×8(h)=28800を指定します。

投稿者 webmaster : 2005年03月09日 00:06 | コメント (0) | トラックバック (0)

5. 検索のしかた

5.1 トップ画面での検索

  1. 「キーワード」欄に、検索に使用するキーワードを指定して、「検索開始」ボタンをクリックして下さい。ブランク(空白文字)で区切って複数のキーワードを指定することができます。この場合、すべてのキーワードを含むページを検索します(AND検索)。
  2. 現在のシステムでは、キーワードが複合語(例えば「政治経済」)の場合、基本語(「政治」と「経済」)に分解して、AND検索を行います。従って、複合語を指定した場合の検索結果は、本来ヒットして欲しいもの以外のページもヒットすることがあります。

5.2 検索オプションでの検索

  1. すべてのキーワードを含む(AND) ・・・指定されたキーワードすべてを含むページを検索します。ブランク(空白文字)で区切って複数のキーワードを指定することができます(以下、2. 3. も同様)。
  2. いずれかのキーワードを含む(OR) ・・・指定されたキーワードのいずれかを含むページを検索します。
  3. これらのキーワードを含まない(NOT) ・・・1. 2. でヒットしたページのうち、ここに指定されたキーワードを含むページを除外します。
  4. このサイト内の文書のみ検索する(URL) ・・・ 1. 2. 3. による検索結果のうち、指定されたURLで始まるページのみを表示します。
  5. 1ページの表示件数・・・検索結果を1ページに何件表示するかを指定します。
  6. 表示順・・・検索結果を表示する際の順番を指定します。
  7. 表示形式 ・・・検索結果を表示する際の、表示形式を指定します。

 以上を指定して、「検索開始」ボタンをクリックして下さい。 検索時には、1.(AND) または2.(OR)の少なくとも一方は指定する必要があります。3.(NOT)のみ指定すると、検索エラーになります

投稿者 webmaster : 2005年03月09日 00:07 | コメント (0) | トラックバック (0)

6. 使い方のヒント

6.1 必要となるサーバーのハードウェアスペック

 下記に実際のパフォーマンスデータの例を示しますので、参考にして下さい。

(1) サーバーのスペック
 ・Mother Board: Intel 815EP(sound on board)
 ・CPU: intel celeron 1GHz
 ・MEMORY: 512MB
 ・DISK: FUJITSU MPG3409AT 40GB 5400rpm
 ・VIDEO: Inno3D TORNADO GeForce2 MX400 64MB
 ・LAN Card: RealTek RTL8139 Fast Ethernet 10/100BASE-T
 ・Network(Internet): ADSL 8Mbps
 ・OS: RedHat Linux 7.3 (FTP版)

(2) 登録データ
 ・登録サイト数: 20サイト
 ・登録ページ数: 30,000ページ
 ・キーワード数: 5,420,000語

(3) 検索時間
 ・キーワード数 1/ヒット数 560件: 検索時間 2.6秒
 ・キーワード数 1/ヒット数 1,778件: 検索時間 5.1秒
 ・キーワード数 2(AND検索)/ヒット数 799件: 検索時間 4.7秒
 ・キーワード数 2(AND検索)/ヒット数 1,126件: 検索時間 8.7秒

 ただし、これらは初回の検索時間です。2回目以降は、データがキャッシュされるので、いずれのケースも検索時間は1秒以内でした。

6.2 検索時間を短縮するには?

 検索時間を短縮するには、データベースへのアクセス時間を短くすることです。Linuxの場合、メモリー上のディスクキャッシュにデータベースファイルが乗ってしまえば、検索時間は劇的に短くなります。従って、データベースファイルの大きさが、数100MB程度であれば、メモリーの増設が最も効果的です。

 データベースファイルが大きく、ディスクアクセスが避けられない場合は、高速なディスクドライブの使用やRAID化(RAID 0(ストライピング))が効果的です。

投稿者 webmaster : 2005年03月09日 00:08 | コメント (0) | トラックバック (0)