火曜日, 2月 20, 2007

namazuのインストールについて

namazuとは


 namazuというのは、日本語の全文検索システムとして広く利用されているものです。
検索する時にできる検索方法は、AND検索、OR検索、NOT検索、、グループ化、フレイズ検索、部分一致検索、正規表現検索などです。

一例を示しておきますと。

AND


ある単語とある単語の両方を含む文書を検索します。
例:cat and god
andはこのとき省略することができます。 普通にスペースを入れるとand検索になります。

OR



ある単語とある単語のどちらかを含む文書を検索します。3つ以上の単語を指定することができます。
例:cat or dog or mixi

NOT



ある単語を含みある単語を含まない文書を検索します。
また、1つは最低でも含むという指定をしなくてはいけないようです。

グループ化



AND検索、OR検索、NOT検索を括弧でグループ化できます。括弧の両隣には空白を入れる必要があります。
例:( god and cat ) and Mixi

フレイズ検索



2語以上からなる複合語を検索します。namazuのフレイズ検索はたまに間違えることがあるようです。(くせ者ですね)
例:{GNU Emacs}

部分一致検索

前方一致、中間一致、後方一致の3種類があります。
前方一致
*test
後方一致
+test
中間一致
*test*

正規表現検索

検索するキーワードを正規表現で指定します。正規表現は/../などのようにスラッシュ記号で囲みます。正規表現のエンジンにはrubyのコードを利用しています。正規表現の書式はperlとほぼ一緒です。
/コ[レ]?ガ/

参考サイトURL:
Namazu: a Full-Text Search Engine
http://search.net-newbie.com/cgi-bin/namazu.cgi


調べてみるとどうやら全文検索するときにkakasiかchasenなどを利用するようです。
まぁ、makeする時に必要なパッケージ書いておきます。

perl
nkf
kakasi
Text::Kakasi
Chasen
Text::Chasen
gettext
File-MMagic

と、上記のようになっております。

ライブラリ等はこちらを参照しました。
Namazu 2.0入門/make
ライブラリについては、使いたい言語などで違うと思いますが、まずは、入れておいてください。テストのために今回はText::ChaSenなども入れました。

OSごとのインストール解説


OSが違えばもちろんインストール方法だって違ってきます。 BSDでは、一般的にPortsLinuxではyum,apt-getなどになります。MacOSXには、darwin portsがありますね。
yumであれば

yum install namazu

apt-getであれば

apt-get install namazu

darwin portsであれば

ports install namazu


おそらく、この3つのパッケージマネージャにはGUI環境があるやつもあると思いますが、それについてはおのおの違うと思うので割愛させていただきます。
詳しいわけではないのでコンパイルオプションとかは自分でお調べください。 

そして、最後にパッケージマネージャで入れる際は、何が入っているのかをログをはかせるようにしてください。ログがない状態でインストールを完了すると、何が入ったのかわからない状態でサーバが動く状態になりますから。

一応使うのは、chasen、File-MMagic、Text::Chasenという感じで行こうと思います。
本当であればruby版で見せたいのですが自信が無いので今回は説明書通りにということで。

インストール


さて、まずはインストール
portsでnamazuをインストールさせてもらいます。

結果は下記のようになりました。

cd /usr/ports/databases/namazu2/
greentea# make install clean
=> namazu-2.0.16.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
=> Attempting to fetch from http://www.namazu.org/stable/.
namazu-2.0.16.tar.gz 100% of 1157 kB 135 kBps
===> Extracting for namazu2-2.0.16_1
=> MD5 Checksum OK for namazu-2.0.16.tar.gz.
=> SHA256 Checksum OK for namazu-2.0.16.tar.gz.
===> namazu2-2.0.16_1 depends on file: /usr/local/bin/perl5.8.8 - found
===> Patching for namazu2-2.0.16_1
===> namazu2-2.0.16_1 depends on file: /usr/local/bin/perl5.8.8 - found
===> Applying FreeBSD patches for namazu2-2.0.16_1
===> namazu2-2.0.16_1 depends on file: /usr/local/lib/perl5/site_perl/5.8.8/File/MMagic.pm - not found
===> Verifying install for /usr/local/lib/perl5/site_perl/5.8.8/File/MMagic.pm in /usr/ports/devel/p5-File-MMagic
=> File-MMagic-1.27.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
=> Attempting to fetch from ftp://ftp.funet.fi/pub/languages/perl/CPAN/modules/by-module/File/.
File-MMagic-1.27.tar.gz 100% of 20 kB 18 kBps
===> Extracting for p5-File-MMagic-1.27
=> MD5 Checksum OK for File-MMagic-1.27.tar.gz.
=> SHA256 Checksum OK for File-MMagic-1.27.tar.gz.
===> p5-File-MMagic-1.27 depends on file: /usr/local/bin/perl5.8.8 - found
===> Patching for p5-File-MMagic-1.27
===> p5-File-MMagic-1.27 depends on file: /usr/local/bin/perl5.8.8 - found
===> p5-File-MMagic-1.27 depends on file: /usr/local/bin/perl5.8.8 - found
===> Configuring for p5-File-MMagic-1.27
Checking if your kit is complete...
Looks good
Writing Makefile for File::MMagic
===> Building for p5-File-MMagic-1.27
cp MMagic.pm blib/lib/File/MMagic.pm
Manifying blib/man3/File::MMagic.3
===> Installing for p5-File-MMagic-1.27
===> p5-File-MMagic-1.27 depends on file: /usr/local/bin/perl5.8.8 - found
===> Generating temporary packing list
===> Checking if devel/p5-File-MMagic already installed
Installing /usr/local/lib/perl5/site_perl/5.8.8/File/MMagic.pm
Installing /usr/local/lib/perl5/5.8.8/man/man3/File::MMagic.3
Writing /usr/local/lib/perl5/site_perl/5.8.8/mach/auto/File/MMagic/.packlist
===> Compressing manual pages for p5-File-MMagic-1.27
===> Registering installation for p5-File-MMagic-1.27
===> Returning to build of namazu2-2.0.16_1
===> namazu2-2.0.16_1 depends on file: /usr/local/bin/perl5.8.8 - found
===> namazu2-2.0.16_1 depends on file: /usr/local/bin/libtool - found
===> namazu2-2.0.16_1 depends on shared library: iconv.3 - found
===> namazu2-2.0.16_1 depends on shared library: intl - found


んー、NKFじゃなくて、ここではどうやらiconv使っているっぽいなぁ。。。。調べてみるとNKFも入っているようなのでiconvもつかえるっていうことでしょう。

[root@greentea /usr/local/etc/namazu]# namazu "てすと" /tmp/index/
Results:

References: [ てすと: 1 ]

Total 1 documents matching your query.

1. test.html (score: 2)
Author: unknown
Date: Tue, 20 Feb 2007 02:35:32 +0900
てすと
/home/luna/public_html/test.html (40 bytes)




Current List: 1 - 1

もっと詳しい使い方はこちら
Namazu User's Manual
http://www.namazu.org/doc/manual.html

文字コードについて


文字コードはLANGで設定しましょう。 AC_ALLなどで設定してしまうと動作する文字コードがかわってしまって大変なことになると思います。

rubyでnamazuを使ってみよう。


最初の状態では、perlでの動作をさせるライブラリのみとなっています。
mknmzというインデックス作成に使うやつもperlで書かれており、perlでnamazuを利用する形です。
rubyでnamazuを使いたい人も多いでしょう。 うちの研究室ではrubyに重きをおいて使っている人が多いのでrubyでnamazuを利用するライブラリを探してみました。
そういうライブラリはrbnamazuというライブラリがあるらしいのですが、バージョン的にも開発中のにおいがします。 このrbnamazuというのを検索してみましたが、ページ自体はありますが、ソースコード自体がないかもしれないです(見つけきれませんでした。)
と、言うことなので、namazuを利用するときは、mknmzから利用してindexを作成し、namazuで検索するようにするのが今現状の使用方法になると思います。

また進展があったら書きます。

追記:まさかと思って調べてみたところ
whereis rbnamazu
rbnamazu: /usr/ports/japanese/rbnamazu
とありましたので、rbnamazuが安定版として提供されているみたいです。他のパッケージマネージャではどうなっているのかはわからないので調べてみてください。

金曜日, 2月 09, 2007

ウェブ進化論をよんで

 チープ革命、Web2.0、オープンソース。 おそらくこのワードのうちの一つか二つは耳にしたことがあると思います。これは今現在流行しているワードの一つであると思います。
 説明をしますと、Web2.0というのは(一によりとらえ方が違うと思います)今まで能動的に情報を受信していた人たち(まぁ、だいたいはプログラミングしているひとです)あるサービスを使って今度は情報を配信する側に回れるようになる世界のことです。 外部からのリクエストをAPIによって実行し、他の人たちもそのサービスをプログラムから利用できるようにするみたいなね。
 チープ革命とは、今までお金をかけてやってきたことがほぼ無料でできるようになったという今の開発の現状ですかね。
 オープンソースっていうのは、その名の通りクローズなソースじゃなくていろいろな人が開発に携わって作るプロジェクト。今まではあるベンダーが作っていたやつを有志の人間がどんどんソースを公開してそれを見た人がどんどん改良を加えていくというスタイルの開発方法がとられることが多いです。なんとかProjectという形でプロジェクト単位で開発はすすみます。

 さて最初になぜこのようなことを書いたか?といいますと、ウェブ進化論をみる上でこれを途中で理解していないとどんなに読んでも作者が言わんとする世界の変化に気づけないためです。 このウェブ進化論でいっているのは未来の話だけではなく、今の現状をひもといてIT産業の未来の姿を紐解いてるものです。 ちなみに、ウェブ進化論には無論ブログも登場します。 といいますのも、このブログって言うのは、俺にとっては日記であり知的生産をするうえで、そして、過去を振り返る上では欠かせない存在となっております。

 書きたいことは、一つ。 グーグルさんすごいです。っていうか、このままWeb1.0のまま進んでいく企業はきっと、2.0化する部分もありますでしょうが、これからの社会でも生き残る率は高いと思います。 共存という形になると思います。 また、Webに重きを置いていない企業はどんどんおいていかれるでしょう。 この本でも書かれている今後10年の動きです。 このムーブメントに乗れないのは開発者としてもおいていかれるでしょう。

 気になりますか? 今後の10年w それはこの本で見て自分で実際に体験してみるしかないです。 頭を素直にさせて話を聞いてみてください。きっと、驚きが多いと思います。

水曜日, 2月 07, 2007

ruby関連

macOSXにもやっぱりrailsを入れようと思い入れることを決断

gemsをインストール(ソースより)
tar xvzf rubygems.tgz
cd rubygems
ruby setup.rb config
ruby setup.rb setup
ruby setup.rb install



gemsからrailsをインストール
sudo gem install rails --include-dependencies



portからruby/Mysqlをインストール
port install rb-mysql


今回はスタイルシートをこのブログ内でも使えるかどうか?っていうテストも同時に行ってみた。今回したのは、divタグを使ってclass要素にborderを適用、borderの内容border:1px solid black; color:red;を適用

このブログに書く場合は、テンプレートのCSSに変更を加えるひつようがありそうだ。

木曜日, 2月 01, 2007

FedoraCore再インスコ

 プロジェクト管理を受けるために学校にきましたが腕時計の情報を信じてしまったため11時くらいまで今日テストであることを忘れておりました。  こんなところに伏兵がいたとは、、思いもしませんでした。

 かなり余裕気味に研究室でFedoraCoreをインストールしてます。 とりあえず、設定するだけ設定したら飯食べて勉強しますか。

PCSuccessが。。。

 どうやらPCSuccessの長い間消費者を苦しませた幕はそろそろ閉じられようとしています。

 newAkiba.comの記事で見たのですが、PCSuccessは仕入れ先からの支払いを延滞していたり、楽天での出店しているところも使えないとか。前々からいろいろ問題のあったPCSuccessでしたが、そろそろ幕が閉じられようとしている今日でありました。
 P.S. 個人的には、あそこの会社の対応がすごく悪かったからつぶれて当然だと思ったし、つぶれてなかったのが不思議でしょうがなかった。