初期バージョン から バージョン 2 における更新: チケット #30

差分発生行の前後
無視リスト:
更新日時:
2007/11/14 11:43:53 (17 年 前)
更新者:
h-morita
コメント:

チケット概要に書かれた分析結果を成果物として、一旦タスクをクローズとする。

凡例:

変更なし
追加
削除
変更
  • チケット #30

    • ステータス 属性が new から closed に 変更されました。
    • 解決方法 属性が から fixed に 変更されました。
    • 分類 属性が 不具合 から タスク に 変更されました。
  • チケット #30 – 説明

    initial v2  
    1 現行のOReFiLシステムの仕様や内部構造を分析する。 
     1= 現行システム分析結果 = 
     2== 構成 == 
     3 現行 OReFil システムの構成 
     4 * Linux[[br]] 
     5 * Apache[[br]] 
     6  Apache2 (/opt/apache2) を利用している模様。[[br]] 
     7  /etc/httpd/conf/httpd.confは使われていない模様。[[br]] 
     8 * Perl[[br]] 
     9  CGI スクリプトとして動作。[[br]] 
     10  森田環境では別途 Template モジュールを導入。[[br]] 
     11 * Berkeley DB[[br]] 
     12  文書 ID からオンラインリソースの各種属性情報を引く為に利用されている模様。[[br]] 
     13  Perl の DB_File モジュール経由で利用されている。[[br]] 
     14  バージョンは4.2のものに依存している。[[br]] 
     15 * Lemur[[br]] 
     16  メインの検索エンジン。[[br]] 
     17  検索文字列から文書 ID を引く為に利用される。[[br]] 
     18  内部的には IndriRunQuery コマンドを利用している。[[br]] 
     19 
     20== 検索時の動作フロー == 
     21  フロントエンドである index.cgi (実体は index07.cgi)はおおよそ以下のようなフローをたどる。 
     22 1. 初期化 
     23 1. バックエンドに対し問い合わせ 
     24  1. 入力されたパラメータを元に IndriRunQuery 
     25   * 以下のフォーマットで出力される(TREC フォーマット) 
     26    {{{ 
     27<queryID> Q0 <DocID> <rank> <score> <runID> 
     28    }}} 
     29   * <DocID> はさらに以下のフォーマットで出力される 
     30    {{{ 
     31<id>|<url>|<pmids> 
     32    }}} 
     33  1. IndriRunQuery の結果を元に、map して grep して map 
     34   1. 1回目の map[[br]] 
     35    IndriRunQueryの結果をパース。 
     36   1. grep[[br]] 
     37    パース結果をフィルタ。 
     38   1. 2回目の map[[br]] 
     39    パース結果を元に属性情報を取り出し、検索結果用のタプルを作る。[[br]] 
     40    MeSH の出現頻度を累計[[br]] 
     41 1. MeSH の出現頻度を加工 
     42 1. Index の最終作成日を算出 
     43  インデックスファイルの更新日時を元に算出 
     44 1. Template モジュールに食わせる元データの作成 
     45   * CGI.pm と utf-8 の組合わせで発生するバグの回避コードもある。[[br]] 
     46    詳しくはこちら[http://blog.nomadscafe.jp/archives/000491.html] 
     47 1. Template エンジンを実行