ドキュメントのインデックス生成

| コメント(0) | トラックバック(0)

最近KnowledgeTreeのプラグインを書いてるので、ソースコードを色々追っている。今回はインデックス生成の話。

KnowledgeTreeはご存じの通り全文検索が出来るのだが、その仕組みを大雑把に書くと

  1. Word、PDF等の異なる形式の文書からテキスト要素だけ抜き出し
  2. 抜き出したテキストに対してインデックスを生成

1.を行うのがExtractorと呼ばれるクラス。

/opt/ktdms/knowledgeTree/search2/indexing/extractorCore.inc.phpにDocumentExtractorという抽象クラスが定義されており、その孫クラスあたりにWordExtractor,PDFExtractorなどがある。それらの実体は/opt/ktdms/knowledgeTree/search2/indexing/extractorsの下にある。

各extractorはcatdocなどの外部コマンドを呼び出して、ファイルからテキスト情報を抽出しているらしい。

さて、それらのクラスがどうやって呼び出されるんだろう?と疑問に思ってたんだけど、mime_typesとmime_extractorsという2つのテーブルを発見。後者に先ほどのExtractorの情報が格納されていて、前者にはmime typeの一覧と、各Mime typeに対応するExtractorの情報が入ってる。

インデックス生成の仕組みについてはもう少し調べてから、もう少し詳しい説明を書こうと思う。

トラックバック(0)

トラックバックURL: http://www.kazu.tv/blog-mgr/mt-tb.cgi/725

コメントする

このブログの作者

名前:kazu
仕事:IT関係の何でも屋
メール:kazu 後幕 kazu どと tv
詳しくはこの辺

このブログ記事について

このページは、kazuが2008年12月22日 21:40に書いたブログ記事です。

ひとつ前のブログ記事は「Class 'KTOnDiskHashedStorageManager' not found」です。

次のブログ記事は「KnowledgeTreeのPHPでPEARやPECLを使う」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

ウェブページ