チケット #30 (closed タスク: fixed)
現行 OReFiL システムの分析
報告者: | h-morita | 担当者: | h-morita |
---|---|---|---|
優先度: | 各マイルストーンで解決する | マイルストーン: | Iterate2(11/22) |
コンポーネント: | OReFiL | バージョン: | |
キーワード: | 関係者: | ||
GanttChart表示: | OFF | 依存TaskNo: | |
開始予定日: | YYYY/MM/DD | 終了予定日: | YYYY/MM/DD |
説明 (最終更新者: h-morita) (diff)
現行システム分析結果
構成
現行 OReFil システムの構成
- Linux
- Apache
Apache2 (/opt/apache2) を利用している模様。
/etc/httpd/conf/httpd.confは使われていない模様。
- Perl
CGI スクリプトとして動作。
森田環境では別途 Template モジュールを導入。
- Berkeley DB
文書 ID からオンラインリソースの各種属性情報を引く為に利用されている模様。
Perl の DB_File モジュール経由で利用されている。
バージョンは4.2のものに依存している。
- Lemur
メインの検索エンジン。
検索文字列から文書 ID を引く為に利用される。
内部的には IndriRunQuery コマンドを利用している。
検索時の動作フロー
フロントエンドである index.cgi (実体は index07.cgi)はおおよそ以下のようなフローをたどる。
- 初期化
- バックエンドに対し問い合わせ
- 入力されたパラメータを元に IndriRunQuery
- 以下のフォーマットで出力される(TREC フォーマット)
<queryID> Q0 <DocID> <rank> <score> <runID>
- <DocID> はさらに以下のフォーマットで出力される
<id>|<url>|<pmids>
- 以下のフォーマットで出力される(TREC フォーマット)
- IndriRunQuery の結果を元に、map して grep して map
- 1回目の map
IndriRunQueryの結果をパース。 - grep
パース結果をフィルタ。 - 2回目の map
パース結果を元に属性情報を取り出し、検索結果用のタプルを作る。
MeSH の出現頻度を累計
- 1回目の map
- 入力されたパラメータを元に IndriRunQuery
- MeSH の出現頻度を加工
- Index の最終作成日を算出 インデックスファイルの更新日時を元に算出
- Template モジュールに食わせる元データの作成
- CGI.pm と utf-8 の組合わせで発生するバグの回避コードもある。
詳しくはこちら http://blog.nomadscafe.jp/archives/000491.html
- CGI.pm と utf-8 の組合わせで発生するバグの回避コードもある。
- Template エンジンを実行
チケットの履歴
Note: チケットについてのヘルプは
TracTickets を参照
して下さい。