pnamazu の opmode2006年07月02日 00時19分20秒

本家 Namazu にはありませんが、pnamazu にある機能の ひとつに opmodeがあります。

CGI 変数 'opmode'

CGI 動作時の QUERY_STRING に opmode という変数があったら、

  • 'or' の場合
 演算子の無いものを or で扱います。また、従来通り、 それが { } で
 囲まれているときは phrase 演算し、 'and', 'or' といった演算子も、
 使えます。 
  • 'inside' の場合
 単純な日本語の単語検索のときに、語の前後に '*' がついているもの
 として扱います。
 
 例: 「京都」は「*京都*」と扱われます。
 
 英数字については、この処理はされません。 従来通り '*' を明示しない限り、
 単語単位となります。 
  • 'forward' の場合
 単純な日本語の単語検索のときに、語の後に '*' がついているものとして
 扱います。
 
 例: 「京都」は「京都*」と扱われます。
 
 英数字については、この処理はされません。 従来通り '*' を明示しない限り、
 単語単位となります。

radio ボタンに対応2006年07月02日 03時42分52秒

QUERY_STRING の内容で NMZ.head を書き換えるものの中で、select タグで
選択可能な項目を input タグの radio ボタンにも対応しました。
(HEAD のみ)

例えば、

<select name="max">
<option value="10">10</option>
<option selected value="20">20</option>
<option value="30">30</option>
<option value="50">50</option>
<option value="100">100</option>
</select>



<input type="radio" name="max" value="10">10
<input type="radio" name="max" value="20" checked>20
<input type="radio" name="max" value="30">30
<input type="radio" name="max" value="50">50
<input type="radio" name="max" value="100">100

というように書いても検索結果に選択した項目が反映されます。

対象となる項目は以下の通りです。
* result
* sort
* lang
* idxname
* subquery
* max

form の書き換え2006年07月02日 06時19分06秒

form の書き換えに関する以下の内容を修正しました。

・QUERY_STRING が空の場合(namazu.cgi を直接呼び出した場合)、NMZ.head の checked, selected で示される選択状態の書き換えを行わないようにしました。
 
これにより、初期値に関わらず、各項目の選択状態はテンプレートの内容のまま表示されます。
 (HEAD のみ)

・<!DOCTYPE をチェックして、XHTML かどうかを判定する check_xhtml() を追加しました。(HEAD のみ)

・空要素タグを "/>" を出力して閉じている部分を " />" に変更しました。
(HEAD/stable-2-0共)

querymode で簡単にフィールド検索を実現2006年07月03日 02時25分06秒

Namazu の欠点のひとつに様々な検索を行うためには、複雑な検索式を書かなければならないことにあります。
しかし、一般利用者が複雑な検索式を入力して検索することはほとんどありえません。

CGI パラメータに querymode を新たに追加しました。(HEAD のみ)
query を加工することにより、複雑な検索式を入力せずに利用できるようになります。

現在のところ
"normal" と "field:xxxx" という2種類ですが、今後増やしていく予定です。

- normal
従来通りのモードです。(デフォルト)

- field:xxxx
xxxx にフィールド名を設定し、フィールド検索を行います。
入力した query から +xxxx:query という検索式を作り出します。

例えば、field:subject で、検索式に Namazu と入力した場合は、
+subject:Namazu と入力したのと同じことになります。

query に空白文字が含まれる場合は、+xxxx:"query" と入力したのと同じになります。

subquery には影響を及ぼしません。

検索ページは、<select> タグや <input type="radio" ...> で、querymode の値を選択式にすることで、通常検索、タイトル検索、著者検索、等のモードを簡単に切り替えることができるようになります。

あるいは <input type="hidden" ...> でタイトル検索のみ行える検索システムを構築するといったことも可能です。

nkf 2.0.7 リリース2006年07月05日 03時09分58秒

nkf 2.0.7 がリリースされました。

http://prdownloads.sourceforge.jp/nkf/20770/nkf207.tar.gz

MD5 (nkf207.tar.gz) = af11dcd3fe71d67831c020e3bfd5073b

SHA1 (nkf207.tar.gz) = 97ee0920a5cd935acd08ca789c7b8c810a594311

Namazu で利用する分には 2.0.6 でも十分ですが、細かいバグが修正されています。

NKF の PPM を更新し、2.07 にバージョンアップしました2006年07月05日 04時44分21秒

NKF 2.0.7 がリリースされましたので、NKF の PPM ファイルを更新しました。

http://www.akaneiro.jp/PPMPackages/zips/8xx-builds-only/Windows/ 

にソースを含めてまとめた zip ファイルを置きました。

ActivePerl ビルド 800番台 専用です。500, 600 番台では使用できませんのでご注意ください。

なお、次の手順で NKF のバージョンアップが可能です。

C:\>ppm
ppm> uninstall NKF
ppm> install http://www.akaneiro.jp/PPMPackages/800/NKF.ppd -force
ppm> quit
  • ライセンスはソースのライセンスに従います。
  • 予告なく PPM, zip の中身は更新します。

MeCab 0.92 がリリース2006年07月10日 13時20分37秒

MeCab 0.92 がリリースされました。

http://sourceforge.jp/projects/mecab/

MeCab 0.92 + MinGw 環境での make check2006年07月10日 18時09分54秒

MeCab 0.92 + MinGw 環境で make check を実行するとエラーになることに気づきました。(これは MeCab 0.91 でもエラーになります。)

エラーの内容を確認すると、予め用意されている test.gld とテスト時に作成される test.out の改行コードの違いによる差で発生するものでした。
これは UNIX 環境でのテストを想定しているためでしょう。

tests/run.sh, tests/run2.sh の diff に -b オプションを付けてみるとエラーはなくなりました。
このことから、テストに失敗するのはテストプログラム側の問題であって、MeCab 0.92 の動作自体には問題はないということのようです。

MeCab 0.92 テストスクリプトの問題2006年07月11日 06時31分10秒

mecab-perl-0.92.tar.gz には test.pl test2.pl の二つのテストスクリプト(と思われる)が含まれます。

これらは Test モジュールを用いた一般的なテストスクリプトではありません。

そのことは特に問題ないのですが、test.pl はテストスクリプトであると、ExtUtils::MakeMaker に認識されますが、test2.pl は認識されません。
このため、test2.pl はモジュールの一部と認識されるようで、コンパイルすると blib/lib/ に含まれます。

テストスクリプトの test2.pl を MeCab の一部としてインストールする必要はないので、あまり好ましいものではありません。

複数のテストスクリプトを入れるのであるなら、Test モジュールを用いたテストスクリプトにして、 t/ 以下に置くのが良いように思います。

MeCab 0.92 PPM2006年07月12日 00時45分59秒

MeCab 0.92 がリリースされましたので、MeCab の PPM および辞書を更新しました。

 http://www.akaneiro.jp/PPMPackages/800/MeCab.ppd

ppm コマンドでインストール/バージョンアップができます。

 C:\> ppm uninstall MeCab
 C:\> ppm install http://www.akaneiro.jp/PPMPackages/800/MeCab.ppd

MeCab Perl モジュールは ppm コマンドでインストールできますが、Text-Kakasi 同様に PPM のインストールだけでは動作せず、辞書と mecabrc のインストールおよび設定が必要になります。

 http://www.akaneiro.jp/public/mecab-ipadic-0.92.zip

から辞書ファイルをダウンロードして、手順に従ってインストールを行ってください。

  • Namazu for Windows 2.0.16 では EUC-JP の辞書を前提にしています。
  • Namazu 以外の用途用にEUC-JP版辞書以外にShift_JIS版辞書、UTF-8版辞書を用意しました。
http://www.akaneiro.jp/public/mecab-ipadic-0.92-sjis.zip
http://www.akaneiro.jp/public/mecab-ipadic-0.92-utf8.zip
  • MeCab PPM をバージョンアップした場合は、辞書もバージョンアップしてください。

なお、従来の MeCab 0.90/0.91用の辞書は名前を変更しました。

http://www.akaneiro.jp/public/mecab-ipadic-0.91.zip
http://www.akaneiro.jp/public/mecab-ipadic-0.91-sjis.zip
http://www.akaneiro.jp/public/mecab-ipadic-0.91-utf8.zip