dev:Namazu

PukiWikiのページをNamazuに食わせるひとつの方法

ぱんだが、自サイトでNamazuを飼った時の記録です。参考になれば幸いです。

以下のような手順でPukiWikiを修正します。

なお、Namazuが動作することを前提にしていますので、適宜インストール/設定を済ませておいてください。

以下のバージョンで動作することを確認しています。

init.phpを修正

最新のcvs版*1では修正されていますが、念のため。

//** 初期処理 **
$update_exec = "";  ←この行を削除してください。

pukiwiki.ini.phpを修正

//$update_exec = ...
の行のコメント記号(//)を削除し、以下のように書きます。
$update_exec = '/usr/bin/mknmz -f /etc/namazu/mknmzrc -t text/pukiwiki
-O /var/lib/namazu/index/ -L ja -c -K /var/www/wiki/';

それぞれの意味(赤字は環境によって調整してください。)大文字小文字は区別されます。

  • /usr/bin/mknmz

    mknmzの場所を絶対パスで指定します。

  • -f /etc/namazu/mknmzrc

    設定ファイルの場所を指定します。

  • -t text/pukiwiki

    メディアタイプを指定することで、pukiwiki.plフィルタ(下記参照)を通すようにする

  • -O /var/lib/namazu/index/

    インデックスの位置

  • -L ja

    日本語を指定

  • -c

    chasenを使う(kakasiを使う時は-k)

  • -K

    記号を除去

  • /var/www/wiki/

    スキャンするディレクトリ

環境によっては省略できるパラメータもありますし、逆にこれでは足りない場合もありますので、その辺は臨機応変にひとつ。 :)

file.php/file_write()を修正

こうしておくと、ページの更新時に一度だけ*2update_execを実行するようになります。

- if($update_exec)
+ if($update_exec and $dir == DATA_DIR)
  {
   system($update_exec." > /dev/null &");
  }

namazurcを修正

環境に応じて適宜修正してください。以下は、PukiWikiを/var/wwwに置いている場合の例です。

Replace         /var/www/wiki/  http://.../pukiwiki.php?

フィルタを設置

検索結果画面の文書タイトルとuriを見やすくするために、フィルタをつくりました。

インデックスの更新

適当なページを編集し、ページを更新してください。バックグラウンドでmknmzが実行され、しばらく待つとNamazuでの検索ができるようになっているはずです。

注意

メモ

重み付けのある Namazu 検索


*1 dev:BugTrack/140参照。
*2 一度に複数のページを更新することは…ないですよね?

添付ファイル: filepukifile.pl 1366件 [詳細] filepukiwiki.pl 3765件 [詳細]

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-05-10 (火) 00:11:51
Site admin: PukiWiki Development Team

PukiWiki 1.5.4+ © 2001-2022 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u12. HTML convert time: 0.887 sec.

OSDN