Namazu-devel-ja(旧)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [namazu-users-ja] Re: はじめましてタイからの参加です。
- From: Hajime BABA <hajime.baba@xxxxxxxxx>
- Date: Thu, 16 Aug 2001 17:09:59 +0900
- X-ml-name: namazu-devel-ja
- X-mail-count: 01867
- References: <005301c12479$79a53f00$0401a8c0@anet.net.th> <20010815232630D.hajime.baba@nao.ac.jp>
From: Hajime BABA <hajime.baba@xxxxxxxxx>
Subject: [namazu-users-ja] Re: はじめましてタイからの参加です。
Date: Wed, 15 Aug 2001 23:26:30 +0900
> これで、普通に mknmz すれば、タイ語のファイルを分かち書きしながら
> インデックスすることができました。インデックスファイルの NMZ.w を
> 見れば、分かち書きできていることはわかります。ただし、こちらの環境
> ではタイ語を入力することができないので、確認できたのはここまでです。
> そもそも、私はタイ語は読めませんので正しいかどうかもよくわかりませ
> ん。しかし、たぶんタイ語をキーワードにしても検索できるとおもいます
> ので、よろしければお試し頂けませんでしょうか。
タイ語の検索で見ていたら、nmz/l10n-ja.c の nmz_is_lang_ja() が単純
にバグっていることに気が付きました。タイ語に限らず、ISO-8859-1系の
言語で検索した場合、これにひっかかる可能性があるのではないかとおも
います。
--- nmz/l10n-ja.c.orig Tue Jun 26 16:42:46 2001
+++ nmz/l10n-ja.c Thu Aug 16 16:03:29 2001
@@ -47,13 +47,13 @@
const char *lang;
lang = nmz_get_lang_ctype();
- if (strcmp(lang, "japanese")) {
+ if (strcmp(lang, "japanese") == 0) {
return 1; /* TRUE */
}
- if (strcmp(lang, "ja")) {
+ if (strcmp(lang, "ja") == 0) {
return 1; /* TRUE */
}
- if (strncmp(lang, "ja_JP", 5)) {
+ if (strncmp(lang, "ja_JP", 5) == 0) {
return 1; /* TRUE */
}
return 0; /* FALSE */
以下に実験結果を示します。/usr/bin/namazu は古いもの、
/usr/local/bin/namazu は nmz/l10n-ja.c に修正を加えたものです。
LC_ALL=C なのに勝手に検索語を分かち書きする、一番上の動作はおかし
いはずです(よね?)。なお、LANGUAGE は設定していません。
==================================================================
baba@sango/home/baba/Namazu/test[180]% setenv LC_ALL C
baba@sango/home/baba/Namazu/test[181]% /usr/bin/namazu 日本語検索 .
Results:
References: { [ 日本語: 3 ] [ 検索: 4 ] :: 0 }
No document matching your query.
baba@sango/home/baba/Namazu/test[182]% /usr/local/bin/namazu 日本語検索 .
Results:
References: [ 日本語検索: 0 ]
No document matching your query.
baba@sango/home/baba/Namazu/test[183]% setenv LC_ALL ja
baba@sango/home/baba/Namazu/test[184]% /usr/bin/namazu 日本語検索 .
検索結果
参考ヒット数: { [ 日本語: 3 ] [ 検索: 4 ] :: 0 }
検索式にマッチする文書はありませんでした。
baba@sango/home/baba/Namazu/test[185]% /usr/local/bin/namazu 日本語検索 .
検索結果
参考ヒット数: { [ 日本語: 3 ] [ 検索: 4 ] :: 0 }
検索式にマッチする文書はありませんでした。
==================================================================
あと、分かち書きしないタイ語では、検索語として複合語が与えられるこ
ともあるはずですから、LC_ALL=th をサポートするように、nmz/search.c
の nmz_do_searching() で
/* If under Japanese mode, do wakatigaki (word segmentation) */
if (nmz_is_lang_ja()) {
if (nmz_wakati(tmpkey)) {
val.stat = ERR_FATAL;
return val;
}
/* Re-examine because tmpkey is wakatied. */
mode = detect_search_mode(tmpkey);
}
の if (nmz_is_lang_ja()) のところを、if (nmz_needs_wakati()) とか
なんか適当に作って、タイ語(あるいは将来的には中国語なども)も含めら
れるように、適当に修正する必要があるかとおもいます。ただし、その場
合は現状の nmz_wakati() は日本語に特化しているので、
nmz_wakati_ja() などとする必要があるでしょう。
なお、実験した範囲では、nmz_strlower() などではとりあえずは問題な
さそうでした。むろん、きちんとチェックする必要はありますが。
--
馬場 肇 ( Hajime BABA ) E-mail: hajime.baba@xxxxxxxxx
国立天文台 天文学データ解析計算センター
--