Entries

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
この記事にトラックバックする(FC2ブログユーザー)
http://burnlight.blog3.fc2.com/tb.php/293-9b216cae

トラックバック

コメント

コメントの投稿

コメントの投稿
管理者にだけ表示を許可する

dokuwiki の日本語全文検索の修正しました の続き

猫派 dokuwiki の日本語全文検索の修正しました
の続きです。

感触として半分くらいしかうまくいってない日本語を含む全文検索。

コマンドラインから全文検索インデックスの再作成がフリーズする問題を検討することにします。

コマンドラインからの全文検索インデックスの再作成はdokuwiki\binディレクトリにあり、
PHP コマンドから実行します。

C:\dokuwiki\bin>php indexer.php -h
Usage: indexer.php

Updates the searchindex by indexing all new or changed pages
when the -c option is given the index is cleared first.

OPTIONS
-h, --help show this help and exit
-c, --clear clear the index before updating
-q, --quiet don't produce any output





日本語対応修正していなければうまくいきます。
コンテンツをそのままに日本語修正版、従来版での動作の確認をしたいので、

dokuwiki\inc\indexer.php を
dokuwiki\inc\indexer-org.php にコピーします。
dokuwiki\bin\indexer.php を
dokuwiki\bin\indexer-org.php にコピーします。

dokuwiki\bin\indexer-org.php でdokuwik\inc\indexer.php を
呼んでいる場所をdokuwiki\inc\indexer-org.php を呼ぶように変更します。

dokuwiki\bin\indexer-prg.php を実行してwikiデータでの問題がないのを確認します。

でdokuwiki\inc\indexer.php をデバッグプリントを出力して、どこでフリーズするか
確認すると、mecabに入力するpipe のfwriteで停止してます。

この原因は
1)windows版IISでpipeを使う場合にはcmd.exeのセキュリティが問題
2)mecabに入力するバッファサイズ

1)は、PHP5だとproc_openにbypass_shellオプションを使用して回避できます。
ishikawaさんのは使用されてました。

2)はsyntax.txt でフリーズしているのでそうなのかと思いました。
mecabの入力バッファサイズを変更するのは、
C:\Program Files\MeCab\etc\mecabrc
を編集します。
input-buffer-size = 28192
で今のところ問題ありません。

これで、dokuwiki\bin\indexer.php -c を何回実行してもフリーズしなくなりましたが、
ページ追加しても検索反映されない場合があります。

しょうがないので、
cachetime キャッシュ保持時間(秒)
インデックスを許可(何秒後)
を1秒にしてみました。

これで、何度日本語ページを追加変更しても検索結果が反映されるようになりました。

ここまで修正したdokuwiki\inc\indexer.php は以下のようになりました。
修正したindexer
公開に問題がある場合はどなたかご連絡をお願いします。
スポンサーサイト
この記事にトラックバックする(FC2ブログユーザー)
http://burnlight.blog3.fc2.com/tb.php/293-9b216cae

トラックバック

コメント

コメントの投稿

コメントの投稿
管理者にだけ表示を許可する

Appendix

プロフィール

burnlight

  • Author:burnlight
  • 忘れないように色々メモします。

ブロとも申請フォーム

この人とブロともになる

ブログ内検索

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。