Namazu 2.0 入門
 本文書の目的
 2.0.12 版
 簡単・組立済
  NetBSD/pkgsrc
  FreeBSD/Ports
  RedHat Linux/RPM
  Debian
  MacOS X
お急ぎのあなたに
  準備
  configure, make
  make install
  動作確認
始める前に
 mknmz と namazu(.cgi)
 make に必要なもの
 upgrade 更新
  索引の互換性
mknmz
 configure と make
  File-MMagic
  ./configure, make
  make check
 make install 前に
 make install
 --help の表示
 動作確認 mknmz
 URL を合わせる
  --replace
  .namazurc(Replace)
 検索を作る対象
  ~/.mknmzrc での設定
  操作行での指定
 ~/.mknmzrc
  1. 書き方
  2. 位置
  3. .mknmzrc 内変数
 新規と更新
 Filter(前処理)
 各種文書形式
 EXCLUDE_PATH
  最初に | は不可
namazu
 .namazurc
 動作確認
 namazu.cgi
 日本語処理
 環境変数の設定
 --indexing-lang 引数
  環境変数
  日本語表示
  日本語の文字を変える
 型紙(template)のこと
  参照指定 (mknmz)
  参照指定 (namazurc)
  型紙図示
応用編
 項目(field)検索
 複数索引
 窓を付ける
 日記
 Wanderlust
 mhonarc
 表示を自分用に変更
 検索結果の画面を変更
用語
 索引
 kakasi(他)
参照 (URL's)
 他の方の TIPS
その他
 Namazu で出来ること
 出来ないこと
 歴史など
 資源について(準備中)
  最大インデックス
  Out of memory!
  Benchmark
 dbname -> idxname
 チェックポイント機構
 同じ文章を検索対象から外す
 更なる情報源
 うまく行かない
  設置が正しく
  設定
  参照されているか
  索引すべき譜はありません
  FAQ
  情報検索
  バグ追跡システム
  文字化け
 Namazu 採用地点
  番外
  私家版修正
 質問の仕方
  自分の環境を伝えるには
 被参照地点
  UTF-8

Software 入口 | Hardware | NetBSD 解説 | packages | macppc | TsubaiBSD 絹/software/全文検索

日本語処理

mknmz を実行して索引を作る時に、日本語を対象とする場合、環境変数などで、 「日本語」処理をする指示が必要です。
そうしないと、(後で分るのですが、) NMZ.w の中に、変な長い日本語の文が残っていたり、 namazu で検索しても、ちっとも正しい検索をしてくれない。 (でも英語だと正しく見つかる) という問題が起きます。

ではどうやってその指示をするのでしょうか。

Namazu 2.0.6 から環境変数の扱いが修正されました。また、mknmz にコマンド行引数が新設されました。

環境変数の設定

@ www.namazu.org

Namazu 2.0 を日本語環境で利用するには言語の切換を行う環境変数の設定が必要です。

2.0.5 までは、以下のようにメッセージの表示と言語処理の両方で、 全く同じ環境変数を用いていました。

(2.0.5)言語の切換を行なう環境変数(左優先)
【表示】 LANGUAGE LC_ALL LC_MESSAGES LANG
【処理】 LANGUAGE LC_ALL LC_MESSAGES LANG

2.0.6 からは以下のように修正されました。

(2.0.6/2.0.7)言語の切換を行なう環境変数(左優先)
【表示】 LANGUAGE LC_ALL LC_MESSAGES LANG
【処理】
LC_ALL LC_CTYPE LANG

日本語の表示が欲しい時や、日本語の処理をしたい時には、 これらの変数に、

Unix OSja
Windowsja_JP.SJIS
等と設定します。例えば次のような方法で

C shell 等Bourne shell 等
setenv LANG ja LANG=ja; export LANG

LANG に ja を設定し (それ以外の変数に何も設定されていなければ)、 全て日本語の表示をし、 検索対象を日本語として処理します。 ja という値が適当でない時には ja_JP, ja_JP.eucJP, ja_JP.EUC, ja_JP.ujis などという値が必要とされる場合(システム)もあります。

mknmz 実行時に環境変数が適切に設定されていないと、 (1)わかち書きが正しく行なわれず、 (生成された索引の一つである) NMZ.w を覗いて見ると、 本来なら単語が一行に一つづつ書いてあるはずなのに、 長い文章が書いてあって、namazu/namazu.cgi で検索しても 正しく見つけてくれないという問題が起きたり、 (2)filter が日本語について正しく動作しなかったりします。

--indexing-lang 引数

2.0.6 から mknmz に --indexing-lang=LANG が新設されました。

前述の環境変数の設定にかかわらなく mknmz の処理について 言語の指定が出来ます。--indexing-lang=ja などとします。 このオプションが指定されていない場合は前述の環境変数が参照されます。

--indexing-lang= の代りに -L= を使うことも出来ます。

環境変数

環境変数は mknmz.in の 321 行目にあるように
for my $cand (("LANGUAGE", "LC_ALL", "LC_CTYPE", "LANG")) {
をこの順に見ます。ですから
  • setenv LANG ja
  • LANG=ja ;export LANG
などとしておくのが普通です。
これらは cron から実行する時にも必要で、 良くその問題が質問されます。

日本語表示

mknmz, namazu の --help と指定した時の表示を日本語にするには

csh tcsh setenv LANG ja
sh bash LANG=ja ; export LANG

としておけば良い。

検索結果の文字については、

  • namazurc の中に
    Lang ja
    
    などと指定する
  • ja で効かない場合
    例えば、 /usr/local/share/locale または /usr/share/locale の下に設定してある文字列を参考にして 例えば ja_JP.SJIS とか ja_JP.EUC などと 指定する。
  • 漢字コードを揃えておく。
    mknmz/namazu は内部では euc-japan を使っている。
    型紙を変更 する場合には、 *.ja の譜もそれと同じ euc-japan の漢字コードにしておく
表示の日本語を更に日本語らしくするには、僕が用意している 私家版日本語修正を使って、
tar zxf ../tar_files/namazu-2.0.6.tar.gz
zcat 2.0.6-more-japanese-20010810.gz | patch -s -p0
cd namazu-2.0.6/
./configure --with-included-gettext # (など)
time make
のようにするのも一つの方法です。

日本語の文字を変える

一つ前ですっかり日本語にする方法を紹介しましたが、 そうではなくて一部だけ変更したいという時には...
例えば「マッチ」という文字を「一致」にしようと思って それらしい *.c を探しても、見つけることは出来ないはずです。 そういう時は ja.po -> namazu.gmo を変更します。 その話題は次のメールから始まる糸つなぎ(thread) に出ています。
http://www.namazu.org/ml/namazu-users-ja/msg01069.html
検索

この画面は jeedosaquin を使って表示している。

Last Update: Wed, 23 Apr 2008 06:33:00 GMT 1.1.1.1 2008/03/12