[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[plamo:33468] UTF-8 環境における Namazuについて



阿部です。お世話になります。

ヘビーユーザーの方には笑われるかもしれませんが、今時のUTF-8な環境で
Namazu全文検索が使えるのか試してみたいと思いインストールしてみました。

最初に slackware環境にインストールしてそこそこ動作することを確認した後、
plamo-7.xな環境にインストールしました。plamoでもslackware環境と同様に
それなりに使えているのですが、 namazuソースファイルに含まれている UTF-8 環境で
検索結果を表示させるためのスクリプト「namazu_utf8」を使ったとき、
稀にコンソールでの検索結果表示が途中でフリーズして仮想コンソールが固まってしまう
ことがあることがわかりました。
(plamo でも slackware でも同じ状況でした)

namazu_utf8 内容は以下の様なものです。
---------------------------------------------------------
#!/bin/sh

LC_ALL=ja_JP.eucJP
LANGUAGE=ja_JP.eucJP
LANG=ja_JP.eucJP

#namazu `echo -n $* | nkf -e` | nkf -w
namazu `echo -n $* | iconv -f UTF-8 -t EUC-JP` | iconv -f EUC-JP -t UTF-8
---------------------------------------------------------

試行錯誤して調べたところ、mknmz でインデックスは生成されるのですが、
検索ワードが何かのファイル(どのファイルなのか不明)から生成されたインデックスに
当たった際に上記の iconv の出力に引っかかって問題が発生しているのではないか
と推察しています。(見当外れかもしれません)

そこで、上記スクリプトでコメントされて無効になっている、nkf 行を有効にして
iconv のほうを無効にしてみたところ、フリーズしていたときと同じ検索ワードでも
フリーズせずに結果表示できるようになりました。

現在使っている namazu_utf8
---------------------------------------------------------
#!/bin/sh

LC_ALL=ja_JP.eucJP
LANGUAGE=ja_JP.eucJP
LANG=ja_JP.eucJP

namazu `echo -n $* | nkf -e` | nkf -w
#namazu `echo -n $* | iconv -c -f UTF-8 -t EUC-JP` | iconv -c -f EUC-JP -t UTF-8
---------------------------------------------------------

根本原因がわからないまま、行き当たりばったりの対処で動作してはいるものの、
まだ釈然としていません。
どのようなファイル(例えば、windows環境で作成した特定アプリケーションのファイル)
が問題を起こす元だったのか?
または、ファイルに特定の文字(機種依存文字など)があると発生するのか、など
わからないままです。
既知の問題なのかも情報がなくわかりませんでした。

なにか情報、御指摘いただければ幸いです。

以下にインストールした情報を簡単に記します。
===========================================
Namazu version : namazu-2.0.22pre8

$ mknmz -C | nkf -w

読み込んだ設定ファイル: /etc/namazu/mknmzrc
システム: linux
Namazu: 2.0.22pre8
Perl: 5.032000
File-MMagic: 1.30
NKF: module_nkf
KAKASI: /usr/bin/kakasi -ieuc -oeuc -w
茶筌: no
和布蕪: no
わかち書き: /usr/bin/kakasi -ieuc -oeuc -w
メッセージの言語: ja_JP.UTF-8
言語: ja_JP.UTF-8
文字コード: euc
CONFDIR: /etc/namazu
LIBDIR: /usr/share/namazu/pl
FILTERDIR: /usr/share/namazu/filter
TEMPLATEDIR: /usr/share/namazu/template
対応メディアタイプ:   (46)
未対応メディアタイプ: (4) marked with minus (-) probably missing application in your $path
  application/epub+zip: epub.pl
  application/excel: excel.pl
<中略>
- application/ichitaro7: taro7_10.pl
  application/macbinary: macbinary.pl
  application/msword: msword.pl
  application/pdf: pdf.pl
  application/postscript: postscript.pl
  application/powerpoint: powerpoint.pl
  application/rtf: rtf.pl
<中略>
  application/x-bzip2: bzip2.pl
  application/x-compress: compress.pl
- application/x-deb: deb.pl
  application/x-dvi: dvi.pl
  application/x-gzip: gzip.pl
- application/x-js-taro: taro7_10.pl
  application/x-rpm: rpm.pl
  application/x-tex: tex.pl
  application/x-zip: zip.pl
  audio/mpeg: mp3.pl
  message/news: mailnews.pl
  message/rfc822: mailnews.pl
  text/hnf: hnf.pl
  text/html: html.pl
  text/html; x-type=mhonarc: mhonarc.pl
  text/html; x-type=pipermail: pipermail.pl
- text/markdown: markdown.pl
  text/plain
  text/plain; x-type=rfc: rfc.pl
  text/x-hdml: hdml.pl
  text/x-roff: man.pl

==========================================

長文、失礼しました。



[検索ページ] [メール一覧]
Plamo ML 公開システム