ラベル 検索 の投稿を表示しています。 すべての投稿を表示
ラベル 検索 の投稿を表示しています。 すべての投稿を表示
このページの記事一覧

CORESERVERにHyper Estraier導入 - Movable Type改造計画 (その2)

遅くなりましたが、「CORESERVERにHyper Estraier導入 - Movable Type改造計画」の続きです。


多分、そんなに引っかかるところもなく、自然にインストールできたと思います。

Tracとか、NAMAZUとかの方がよっぽど面倒でした。

手順は以下の通りに進めますが、今回は6~9について書きたいと思います。

  1. libiconvのインストール
  2. zlibのインストール
  3. QDBMのインストール
  4. MeCabのインストール(N.M-gram法を使うのであれば不要)
  5. Hyper Estraierのインストール
  6. 文章ドラフトの作成
  7. インデックスの作成
  8. 検索用CGIの設置
  9. その後の管理について

6.文章ドラフトの作成

文章ドラフトに関しては、Junnama OnlineさんのHyper Estraierの「文書ドラフト」をMTから生成して検索する。を参考にしました。

Movable Typeに以下のようなブログ記事のテンプレートを新規作成します。

Tag検索もHyper Estraierにしたかったので検索できるように修正しました。


@uri=<$MTEntryPermalink$>
@title=<$MTEntryTitle remove_html="1"$>
@cdate=<$MTEntryDate format="%Y-%m-%dT%H:%M:%S"$><$MTBlogTimezone$>
@mdate=<$MTEntryModifiedDate format="%Y-%m-%dT%H:%M:%S"$><$MTBlogTimezone$>
category=<$MTEntryCategory$>
categoryUrl=<$MTEntryLink archive_type="Category"$>
<MTEntryIfTagged>tags=<MTEntryTags glue=","><$MTTagName$></MTEntryTags></MTEntryIfTagged>

<$MTEntryTitle remove_html="1"$>
<$MTEntryBody remove_html="1"$>
<$MTEntryMore remove_html="1"$>
<$MTEntryKeywords remove_html="1"$>

アーカイブマッピングは以下のようにします。

このとき、チェックボックスにチェックは入れないようにしてください。

あと、当たり前ですがスタティックパブリッシングにしてください。


draft/%y_%m_%b.est

そして再構築します。



ウェブページも検索に入れたい場合は以下のようなウェブページのテンプレートを新規作成します。

こっちはTag検索抜きました。


@uri=<$MTPagePermalink$>
@title=<$MTPageTitle remove_html="1"$>
@cdate=<$MTPageDate format="%Y-%m-%dT%H:%M:%S"$><$MTBlogTimezone$>
@mdate=<$MTPageModifiedDate format="%Y-%m-%dT%H:%M:%S"$><$MTBlogTimezone$>

<$MTPageTitle remove_html="1"$>
<$MTPageBody remove_html="1"$>
<$MTPageMore remove_html="1"$>
<$MTPageKeywords remove_html="1"$>

アーカイブマッピングは以下のようにします。

このとき、チェックボックスにチェックは入れないようにしてください。

あと、当たり前ですがスタティックパブリッシングにしてください。


draft/%-c.est

そして再構築します。


7.インデックスの作成

sshでログインします。

そしたらbashrc読んでからインデックスを作成します。

以下は、MeCabを使うときのものです。


~> source .bashrc
~> estcmd gather -il ja -um casket /virtual/【アカウント名】/public_html/【ブログディレクトリ】/draft

こっちは、N.M-gramを使うときのです。


~> source .bashrc
~> estcmd gather -il ja casket /virtual/【アカウント名】/public_html/【ブログディレクトリ】/draft

8.検索用CGIの設置

ブログディレクトリに移動してから、必要なファイルをコピーします。。


~> cd /virtual/【アカウント名】/public_html/【ブログディレクトリ】/
~/public_html/【ブログディレクトリ】> cp /virtual/【アカウント名】/libexec/estseek.cgi .
~/public_html/【ブログディレクトリ】> cp /virtual/【アカウント名】/share/hyperestraier/estseek.* .

で、コピーされたファイルの中にあるestseek.confっていうファイルを以下のように変更します。

そのほかの項目はそのままでokです。


indexname: /virtual/【アカウント名】/casket
...
replace: ^file:///virtual/【アカウント名】/public_html/【ブログディレクトリ】/{{!}}http://【ブログのアドレス】/
...
formtype: web

まあ、formtypeも別に変更しなくても良いけど、直した方がナビゲーションがしやすいと思います。


なお、それぞれのファイルは以下通りになっています。

  • estseek.cgi:検索用CGIスクリプト
  • estseek.conf:設定ファイル
  • estseek.tmpl:テンプレートファイル
  • estseek.top:トップページファイル
  • estseek.help:ヘルプファイル

このへんは頑張って編集しよう。


9.その後の管理について

ブログの更新時に以下のようにしてインデックスを更新すればいいと思います。

cronで自動更新っていうのもいいかもしれません。

N.M-gramを使う人は、estcmd gatherの-umを抜いてください。


~> test -e /virtual/【アカウント名】/casket-copy && exit
~> cp -R /virtual/【アカウント名】/casket /virtual/【アカウント名】/casket-copy
~> estcmd gather -cl -il ja -cm -um /virtual/【アカウント名】/casket-copy /virtual/【アカウント名】/public_html/【ブログディレクトリ】/draft
~> estcmd purge -cl /virtual/【アカウント名】/casket-copy
~> estcmd optimize /virtual/【アカウント名】/casket-copy
~> rm -rf /virtual/【アカウント名】/casket ; mv /virtual/【アカウント名】/casket-copy /virtual/【アカウント名】/casket

おまけ

あれ、Tag検索はどうやるの?っていう方、これをやってみよう。

2008/09/16追記:
ごめんなさい、estseek.confの設定も必要でした。
下記をestseek.confに記述してください。


extattr: tags|Tag

これで動くようになります。


MTテンプレートの中で、


<$MTTagSearchLink$>

ってなってる部分を


<$MTBlogURL$>estseek.cgi?attr=tags+STRINC+<$MTTagName encode_url="1"$>&amp;perpage=10&amp;enc=UTF-8

って直してみよう。

そしたら、完成!


でもその内、おかしいなぁと気付くところがあると思う。

そのときは普通の検索とタグ検索とでディレクトリ分けてやってみてください。


それと、EstCrawlerという便利なMTプラグインがあるので、いちいち文章ドラフトを構築とかめんどくさいっていう人にはいいかも。

EstCrawler使う場合は、Perlバインディングをインストールしなきゃいけないので、頑張ってインストールしましょう。

ちなみにインストール方法は下記の通り。

この辺うろ覚えなので、あんまり参考にしない方が良いかもね。


~> cd tmp/hyperestraier-1.4.13/perlnative
~/tmp/hyperestraier-1.4.13/perlnative> perl Makefile.PL prefix=/virtual/【アカウント名】
~/tmp/hyperestraier-1.4.13/perlnative> make
~/tmp/hyperestraier-1.4.13/perlnative> make install


以上でHyper Estraierの導入は終了です。

お疲れ様でした。

CORESERVERにHyper Estraier導入 - Movable Type改造計画

2008/09/15追記:
色々あってタイトル変えました。以上。

暇だったので、Movable Typeで使用されているmt-search.cgiを捨ててHyper Estraierを検索システムとして導入してみました。

インデックス方式として、N.M-gram法と、形態素解析が用意されていたので、MeCabっていう形態素解析エンジンを利用しました。

ちなみにサーバーは共用サーバーで、CORESERVERです。

インストール方法は、マニュアルを見れば大体分かるんじゃないかなと思うけれど、./configureの時になんか指定しなければいけないのでそれもメモ。

手順は以下の通りに進めていきます。

2008/08/06追記:
CORESERVERにzlibは既に最新バージョンがインストールされていたので 2. の作業は行わなくてもokです。
ちなみに、libiconvもインストールされていましたが、バージョンが古くて使えないので最新のものをインストールしてください。

  1. libiconvのインストール
  2. zlibのインストール
  3. QDBMのインストール
  4. MeCabのインストール(N.M-gram法を使うのであれば不要)
  5. Hyper Estraierのインストール
  6. 文章ドラフトの作成
  7. インデックスの作成
  8. 検索用CGIの設置
  9. その後の管理について

やたら長いので、今回は1~5までにします。

下準備

とりあえず、sshが使える環境じゃないと駄目です。

主なsshクライントとしては「Tera Term Pro with TTSSH」とか、「Poderosa」でしょうか。

まあ、それは当たり前として。

で、インストールしたディレクトリが分かるようにパスを設定ファイルをつくります。

設定ファイルはホームディレクトリに「.bashrc」という名前を付けて以下のような内容で配置してください。


PATH=$PATH:$HOME/bin


下準備はこれまでです。

1.libiconvのインストール

まず、sshでログインします。

下準備で作成した「.bashrc」の内容を読み込みます。

そして、作業用ディレクトリとしてtmpフォルダを作成します。


~> source .bashrc
~> mkdir ~/tmp
~> cd ~/tmp

次に、libiconvのアーカイブをダウンロードしてから解凍します。


~/tmp> wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.12.tar.gz
~/tmp> tar xzvf libiconv-1.12.tar.gz
~/tmp> rm libiconv-1.12.tar.gz
~/tmp> cd libiconv-1.12

このままインストールしようとすると、エラーが出ちゃうのでprefixオプションで自分のところにインストールするように修正してからインストールします。

途中でKilledとか、Errorだとか出てきても、次に進まずに同じような事をします。


~/tmp/libiconv-1.12> ./configure --prefix=$HOME
~/tmp/libiconv-1.12> make
~/tmp/libiconv-1.12> make install

そして、シンボリックリンクを作成します。(この辺不明)


~/tmp/libiconv-1.12> cd /virtual/【アカウント名】/lib
~/lib> ln -s libiconv.so.4 libiconv
~/lib> cd ..

成功したら、libiconvのインストールはおしまい。

2.zlibのインストール

次はzlib。とりあえず、tmpフォルダに戻ります。


~> cd tmp


zlibのアーカイブをダウンロードしてから解凍します。


~/tmp> wget http://www.zlib.net/zlib-1.2.3.tar.gz
~/tmp> tar xzvf zlib-1.2.3.tar.gz
~/tmp> rm zlib-1.2.3.tar.gz
~/tmp> cd zlib-1.2.3

同じくprefixオプションで修正してからインストール。

途中でKilledとか、Errorだとか・・・以下略。


~/tmp/zlib-1.2.3> ./configure --prefix=$HOME
~/tmp/zlib-1.2.3> make
~/tmp/zlib-1.2.3> make install

成功したら、zlibのインストールはおしまい。

3.QDBMのインストール

またtmpフォルダへ戻ってからQDBMをダウンロードして解凍。


~/tmp/zlib-1.2.3> cd ..
~/tmp> wget http://qdbm.sourceforge.net/qdbm-1.8.77.tar.gz
~/tmp> tar xzvf qdbm-1.8.77.tar.gz
~/tmp> rm qdbm-1.8.77.tar.gz
~/tmp> cd qdbm-1.8.77

同じくprefixオプションで修正・・・以下略

途中でKilledとか・・・以下略。

他のとは違って、configureの時に--enable-zlibでzlibを有効化した方が良い。


~/tmp/qdbm-1.8.77> ./configure --prefix=$HOME --enable-zlib
~/tmp/qdbm-1.8.77> make
~/tmp/qdbm-1.8.77> make check
~/tmp/qdbm-1.8.77> make install
~/tmp/qdbm-1.8.77> cd ..

成功したら、QDBMのインストールはおしまい。

4.MeCabのインストール(N.M-gram法を使うのであれば不要。)

tmpフォルダへ戻ってからMeCabと辞書をダウンロードして解凍。

形態素解析エンジンは辞書が無いと動かない。


~/tmp> wget http://downloads.sourceforge.net/mecab/mecab-0.97.tar.gz
~/tmp> tar xzvf mecab-0.97.tar.gz
~/tmp> rm mecab-0.97.tar.gz
~/tmp> wget http://downloads.sourceforge.net/mecab/mecab-ipadic-2.7.0-20070801.tar.gz
~/tmp> tar xzvf mecab-ipadic-2.7.0-20070801.tar.gz
~/tmp> rm mecab-ipadic-2.7.0-20070801.tar.gz

とりあえず本体からインストール。

同じくprefixオプションで修正・・・以下略

途中でKilledとか・・・以下略。


~/tmp> cd mecab-0.97
~/tmp/mecab-0.97> ./configure --prefix=$HOME
~/tmp/mecab-0.97> make
~/tmp/mecab-0.97> make check
~/tmp/mecab-0.97> make install
~/tmp/mecab-0.97> cd ..

次は辞書のインストール。

同じくprefixオプションで修正・・・以下略

途中でKilledとか・・・以下略。

文字コードはUTF-8にしているので--with-charset=utf8を追記。

2008/07/14追記:
↑違うじゃん。すんません。マニュアルにきちんとEUC-JPだよって書いてありました。


~/tmp> cd mecab-ipadic-2.7.0-20070801
~/tmp/mecab-ipadic-2.7.0-20070801> ./configure --prefix=$HOME
~/tmp/mecab-ipadic-2.7.0-20070801> make
~/tmp/mecab-ipadic-2.7.0-20070801> make install
~/tmp/mecab-ipadic-2.7.0-20070801> cd ..

成功したら、MeCabのインストールはおしまい。

5.Hyper Estraierのインストール

ようやくメインのHyper Estraierのインストールです。

Hyper Estraierをダウンロードして解凍。


~/tmp> wget http://hyperestraier.sourceforge.net/hyperestraier-1.4.13.tar.gz
~/tmp> tar xzvf hyperestraier-1.4.13.tar.gz
~/tmp> rm hyperestraier-1.4.13.tar.gz
~/tmp> cd hyperestraier-1.4.13

同じくprefixオプションで修正・・・以下略

途中でKilledとか・・・以下略。

MeCabを使う場合は--enable-mecabを付加します。


~/tmp/hyperestraier-1.4.13> ./configure --prefix=$HOME --enable-mecab
~/tmp/hyperestraier-1.4.13> make
~/tmp/hyperestraier-1.4.13> make check
~/tmp/hyperestraier-1.4.13> make install
~/tmp/hyperestraier-1.4.13> cd ..

成功したら、Hyper Estraierのインストールはおしまい。


続きは次回で。