[Namazu-users-ja 928] Re: Unicode(UTF-8)の使用

田中 keiichiro.tanaka @ software.sanix.jp
2006年 10月 31日 (火) 17:12:00 JST


田中です。

Yukio USUDA wrote:

>>
>> NamazuでUTF-8を使用してインデックス作成、検索を行いたい と思います。
>> 現在の安定版ソースコード(Namazu2.0.16)でUTF-8は 使用可能でしょうか?
>> どなたかご教示いただけないでしょうか?
>>
>> OSはCentOSを使用しており、文字コードはUTF-8です。
>> 検索対象のファイルはExcel、Word、PDF、 PPT、テキストファイルを考えて
>> おります。
>
>
> 質問だけでは utf-8 をどこに使用することを
> 考えているのかよくわかりませんが

すみません。
端末の文字コードをutf-8のまま使用しようとしています。

> また、端末の文字コードを utf-8 のままで
> 使用したいということであれば
> インデックス作成時には
> $ mknmz [options] 対象ディレクトリ | nkf -w

上記のように処理すると
Use of uninitialized value in pattern match (m//) at
/usr/local/bin/mknmz line 945.
Use of uninitialized value in pattern match (m//) at
/usr/local/bin/mknmz line 950.
Use of uninitialized value in pattern match (m//) at
/usr/local/bin/mknmz line 957.
sh: no: command not found
というエラーメッセージが表示されます。

mknmzのソースを見てみるとsub require_modulesメソッドの中で
下記の3つの処理でそれぞれエラーがでます。
1.kakasiでの分かち書き
if (util::islang("ja") && $conf::WAKATI =~ /^module_kakasi/) {
require Text::Kakasi || die "unable to require \"Text::Kakasi\"\n";
util::dprint(_("wakati: using Text::Kakasi module\n"));
my $res = Text::Kakasi::getopt_argv('kakasi', '-ieuc', '-oeuc', '-w');
}

2.chasenでの分かち書き
if (util::islang("ja") && $conf::WAKATI =~ /^module_chasen/) {
require Text::ChaSen || die "unable to require \"Text::ChaSen\"\n";
util::dprint(_("wakati: using Text::ChaSen module\n"));
my @arg = ('-i', 'e', '-j', '-F', '%m ');
@arg = ('-i', 'e', '-j', '-F', '%m %H\\n') if $var::Opt{'noun'};
my $res = Text::ChaSen::getopt_argv('chasen-perl', @arg);
}

3.mecabでの分かち書き
if (util::islang("ja") && $conf::WAKATI =~ /^module_mecab/) {
require MeCab || die "unable to require \"MeCab\"\n";
util::dprint(_("wakati: using MeCab module\n"));
}

インデックスに作成されるファイルは以下の5つのファイルです。
NMZ.err NMZ.flist.tmp NMZ.lock2 NMZ.nkf.tmp NMZ.win32.tmp

localeは以下の設定で処理しました。
LANG=ja_JP.UTF-8
LC_CTYPE="ja_JP.UTF-8"
LC_NUMERIC="ja_JP.UTF-8"
LC_TIME="ja_JP.UTF-8"
LC_COLLATE="ja_JP.UTF-8"
LC_MONETARY="ja_JP.UTF-8"
LC_MESSAGES="ja_JP.UTF-8"
LC_PAPER="ja_JP.UTF-8"
LC_NAME="ja_JP.UTF-8"
LC_ADDRESS="ja_JP.UTF-8"
LC_TELEPHONE="ja_JP.UTF-8"
LC_MEASUREMENT="ja_JP.UTF-8"
LC_IDENTIFICATION="ja_JP.UTF-8"
LC_ALL=

> 検索時には
>
> #!/bin/bash
> query=`echo $1|nkf -e`
> /usr/local/bin/namazu $query $2 | nkf -w
> といったスクリプトを作成して namazu への入出力時
>
> の文字コードを変更するようにすればそれなりに使えます。

すみません、私は初心者なものですから上記の方法が理解できません。
Namazu.cgiを用いて検索する際はどのようにして文字コードを変換する
のでしょうか?

>> Namazuの構成部品のバージョンは下記のものを使用しています。
>> Perl: v5.8.5
>> nkf: 2.0.5
>> KAKASI: 2.3.4
>>
>> また、文書フィルタにxlhtml、wvWare、xpdfの使 用を考えていますが、
>> それぞれの部品に必要なバージョンなどあるでしょうか?
>
>
> 多少古いバージョンでも動作はしますが
> 特に理由がないのであればそれぞれ最新のバージョンを
> 使用することをおすすめします。
>
> 臼田幸生
>
>
>
>






Namazu-users-ja メーリングリストの案内