第 313 回 PTT のお知らせ


日時:2005年 7月21日(木) 18:30 から


場所:電気通信大学 IS棟2階 中会議室(215号室)


       新宿駅より京王線,調布駅(特急で2つ目,15分) 北口下車,
       北西方向徒歩12分程度.交通案内はhttp://www.uec.ac.jp/acc/map.html
       を参照してください.IS棟については正門の守衛さんに聞くか,
       http://www.uec.ac.jp/acc/campusnai.htmlの31番の
       建物の位置を記憶するのが良いでしょう.正門から入り、中門で
       一般道を横切って、西キャンパスにお入りください。

話者:
滝田 裕 (電気通信大学 大学院情報システム学研究科)


話題:
Namazu を使った検索ファイルシステム

概要:


 近年のストレージ技術の進歩により、個人用計算機でも大量のファイルが蓄積
できるようになった。Unix のファイルシステムではファイルの名前をツリー構
造で階層化して管理しているが、このような状況では名前によるファイル同定が
段々困難になってきている。そこで最近ではまずファイルの名前を同定するため
にファイル内容やメタデータによる検索を行うことが増えてきた。

 我々は外部にあった検索機能をファイルシステムに統合し、従来のツリー構造
のファイル名とファイル内容に基づくファイル名の両方が使用できるファイル
システムを開発した。このファイルシステムではディレクトリを検索キーワードと
見做し、検索結果をシンボリックリンクとして返す。検索には Namazu を使用して
いる。

 本発表では、このファイルシステムの設計方針と実装、評価を紹介する。


第 313 回 PTTメモ

出席者:26名

石崎賀昭,大日向大地,角田博保,鎌倉正司郎,光林 真,佐々木靖彦,
佐々木祐輔,篠原哲洋,多田好克,寺田 実,西村康彦,原 大輔,濱 善幸,
松山浩治,山口龍太郎,山下 剛,和田 将(電気通信大),和田英一(IIJ),
笹田耕一,辰己丈夫,並木美太郎(東京農工大),馬場 肇(早稲田大),
荒川博志,副田俊介,田中哲朗,筧 一彦(東京大)

質疑応答およびコメント:


Q: クエリとしてANDは書かなくて良いのか.  NOTの部分など.
   A: Namazu の NOT は "AND NOT" という意味の二項演算子なので書く必要は
     ない.

Q: multi-user環境でもroot権限でファイルが見えてしまうのか.
    A: 現状では参照できないはずのファイルの場所がわかってしまう.
       今後,検索結果から参照できないファイルをはずすことを検討している

Q: キーワードとして日本語は利用可能か.
    A: 実装で制約を加えていないので,検索できるはず.
       デモ環境の制約のためデモできず.
         ・Virtual PC のコンソールで日本語入力できない
         ・検索対象のファイルに日本語を含んだものが少ない

Q: "purple"だとか"blue"だとか, 色しか探すことはできないの...?
    A: 検索結果の少ない単語を選んだだけです….
       もちろん,それ以外の単語も探せます.

Q: クエリによるディレクトリの下にcdすることは可能か.
    A: 普通に移動可能(デモで実演).

Q: 検索結果で得られるファイルの中身をpipeを使ってcatなどで表示することは
   可能か.
    A: 普通のシンボリックリンクなので,もちろん可能.
       ("cat `ls :keyword=purple`" のようにバッククオートを使ったデモを
       実演)

Q: shellの補完機能をうまく使うことは?
    A: ファイルグロブは readdir を実行しているので,利用可能.

Q: 検索結果でのランクが 1のものの中身を直接見る方法は.
    A: "1:*" のようにシェルのファイルグロブを使えば可能.
       ただし,readdir を一度も実行せずに直接ファイルパスを指定した場合
       リンクが生成されないため,参照できない.

Q: 永続的に結果を保持したい場合は, cp -rなど行なえるか.
    A: cp -r はまったく問題なく動作する(デモで実演).

Q: バイナリファイルの取り扱いはどうなるか.
    A: (検索インデックスを作る)Namazu がサポートしていないファイル形式は
       無視される.

Q: MacOS Xのspotlightとの違いは.
    A: シェル上で spotlight による検索を行うにはコマンドを使う必要が
       あったはず.
       このシステムではどのプログラムでもファイル名で検索ができる.

Q: MacOS XのspotlightはNFS越しには使えないが, 本手法は可能か.
    A: 現在の実装ではできないが,NFS に対応するコードを入れれば可能にな
       るはず.

Q: GUI実装を行なった場合, その見つかったファイルのなかのどこに該当する
   文字が出現している, といったことは表示できそうか.
    A: Namazu の返すサマリー情報をファイルとして見せることならばできる.
       それぞれのプログラムで開く場所を変えるような芸当はファイルシステ
       ムなのでできない.

Q: 何を探すのに最も役に立ちそうか.
    A: 開発目的は場所を忘れてしまったテキストファイルの検索である.
       現状では対応していないが,C のソースコードで関数を探す時に役立つ
       と考えている.

Q: 検索は瞬時であるのに対しファイルの更新によるインデックス作成に数十秒
   かかるようだと, 問題が発生してしまわないか.
    A: インデックス作成プログラムが動いている場合は更新されたファイルを
       キューに溜めて 5分待ってから更新するように実装している.

Q: lsをかけたときに「もっさり」した動作になってしまう理由は.
    A: システムコールの readdir が実行されるたびに検索プログラムが動く
       ため,「もっさり」した感じになってしまう.

Q: linuxなどへのportabilityはどうか.
    A: 4.4BSD の v ノードスタックという機構を利用しているため,BSD 系の
       OS(FreeBSD, OpenBSD, DragonflyBSD) ならば簡単に移植できると思う.
       Linux の場合、v ノードスタックのような機能を OS 自体では提供して
       いないが,Reiser4 というファイルシステムのもつ Semantic Layer を
       利用すれば移植可能と思われる.

C: Namazu には指定したファイルだけインデックスを更新する機能はないが,
   そのあたり,ほかの検索エンジンの利用を考えたほうがよいのではないか.