Namazu-win32-users-ja(旧)


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

ファイル名でインデックス作成に時間がかかる



板野と申します。

花井さんの作られた、filename.pl でインデックスを作成しています。

動作そのものは正常でファイル名で検索出来るのですが、
インデックス作成時、目的のファイル容量が大きいと
インデックス作成に時間が掛かっています。

主に図面ファイルのインデックスを作成しているので
一ファイルで5MBから15MBの容量のファイルが多数あります。
ファイル容量の小さいファイル(100KB程度)なら
インデックス作成は高速に処理されます。

大きなファイルのファイル名をインデックス作成時間を
短くする方法があればご教授下さい。

----filename.plここから----
package filenamedwg;
use strict;
use File::Copy;
require 'util.pl';
require 'gfilter.pl';
sub mediatype() {
    return qw(
 application/dwgfilenameonly
    );
}
sub status() {
    return 'yes';
}
sub recursive() {
    return 0;
}
sub pre_codeconv() {
    return 0;
}
sub post_codeconv () {
    return 0;
}
sub add_magic ($) {
    my ($magic) = @_;
    $magic->addFileExts('\\.dwg$', 'application/dwgfilenameonly');
    return;
}
sub filter ($$$$$) {
    my ($orig_cfile, $cont, $weighted_str, $headings, $fields)
      = @_;
    my $cfile = defined $orig_cfile ? $$orig_cfile : '';
    my $tmpfile  = util::tmpnam('NMZ.filename');
    open (OUT,">$tmpfile") || return "file open error";
    print OUT ("$cfile\n");
    close (OUT);
    {
        my $fh = util::efopen("< $tmpfile");
        $$cont = util::readfile($fh);
    }
    unlink($tmpfile);
    gfilter::line_adjust_filter($cont);
    gfilter::line_adjust_filter($weighted_str);
    gfilter::white_space_adjust_filter($cont);
    $fields->{'title'} = gfilter::filename_to_title($cfile, $weighted_str);
    gfilter::show_filter_debug_info($cont, $weighted_str,
               $fields, $headings);
    return undef;
}
1;
----filename.plここまで----

動作環境:
Namazu: 2.0.12
Perl: 5.006001
Windows2000ProSP3
CPU:Pen4 2G RAM:1GB
AN HTTPD Ver1.42h