Namazu-win32-users-ja(旧)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: ファイル名で検索したいのですが
- From: "HANAI,Akira" <hanai-a@xxxxxxxxxxxxxxxxxxxxxxx>
- Date: Fri, 13 Jun 2003 02:22:38 +0900
- X-ml-name: namazu-win32-users-ja
- X-mail-count: 01835
- References: <005801c330f8$100b8940$0a01a8c0@pandora>
花井と申します。
──"Akiyama Yasuhito" <aki@xxxxxxxx>さんwrote:──
On Fri, 13 Jun 2003 00:34:07 +0900
Subject: [namazu-win32-users-ja] ファイル名で検索したいのですが
───────────────────────────────────
> やりたいことというのは、Namazuで未対応の形式のファイルでもファイル名などで検
> 索することはできませんか?ということです。
>
> もう少し細かくいとう、Namazuでエクセルファイルなどを検索するときは、検索条件
> に xls と入れても検索されます。ただし、exeファイルなどのバイナリや未対応の形
> 式のファイルでは、ファイル名で検索できません。
佐久間さんの方法とは別のやり方で、フィルターの作成でなんとかできないかと、
やってみたところ、とりあえず、拡張子固定(フィルターに記載した拡張子だけ、
検索の対象となる)では、なんとかできました。
(数ファイルのみ対象にした実験レベルでの報告です。
動作や、動作させた結果については未保証と言うことで。)
フィルターのサンプルを文末に転載します。
「.exe」だけをファイル名での検索対象にするサンプルフィルターです。
動作原理は
「本来文章の内容を書き出している一時ファイルに、ファイル名(パス名)を書き出す」
という原始的なものです。
・filename.pl等(*.pl)で保存して¥namazu¥share¥namazu¥filter¥フォルダにコピー
・mknmzrcで「.exe」を検索対象にする
当方環境では上記にて、ファイル名(フルパス名に含まれる文字列)にて検索出来る
ことを確認しました。
sub add_magic ($) の部分を
$magic->addFileExts('\\..+$', 'application/filenameonly');
(全部の拡張子を検索対象にする)
にでも変更(mknmzrcも同様に変更)すれば、全ファイルがファイル名での検索対象
になるかもしれませんが、未検証です。
(本来、検索対象の.html,.txt,.pdf等が文書の内容で検索出来なくなるかも?)
----filename.plここから----
package filename;
use strict;
use File::Copy;
require 'util.pl';
require 'gfilter.pl';
sub mediatype() {
return qw(
application/filenameonly
);
}
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('\\.exe$', 'application/filenameonly');
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ここまで----
============================================================================
NECフィールディング.東日本CSD.テクニカルサポート部.花井 亮(はない あきら)
http://www.geocities.co.jp/SiliconValley-Oakland/8718/
----------------------------------------------------------------------------