プロジェクト

全般

プロフィール

プラグインDMSFの検索エンジンをHyper Estraierへ替える » 履歴 » リビジョン 5

リビジョン 4 (Masanori Machii, 2011/10/20 16:59) → リビジョン 5/10 (Masanori Machii, 2011/10/20 17:58)

h1. プラグインDMSFの検索エンジンをHyper Estraierへ替える 

 h2. DMSFとRedmineの関係 

 DMSFはRedmineが標準で備える種々の文書管理を一つにまとめて置き換えようとしたものです.ユーザーインターフェイスは優れていますが,残念ながら検索エンジンにXapianを利用しており,そのままでは日本語に対応できません.そこで,Hyper Estraierへ置き換えるわけですが,改造はエンジンのみの置き換えで済むので,DMSFの基本的な構造は変わりません. 

 その要点は次のとおりです. 

 bq. 注)$REDMINEは自動的に設定される環境編ではありません.ここでは便宜的に使います. 

 # {{fn(DMSFが管理する文書,ファイル名が同じであっても,インデックスは異なるよう,接頭辞が付いています.)}}はすべて $REDMINE/files/dnsf へ置かれる. 
 # インデックスファイルを作成するプロセスが定期的に動作し,それは {{fn($REDMINE/files へ置かれる,これは管理者が設定できるのですが,わかりやすくするため,推奨としました.)}}. 

 【例】"whitemine" というディレクトリにRedmineがインストールされている場合 
 !ファイル保存フォルダ.png! 

 !インデックスデータベース.png! 

 



 これは,DMSFの設定画面にも現れています.またこの画面では,Xapianに由来する設定がありますが,それがHyper Estraierでは不要になります. 

 !Xapianの設定.png! 

 



 ここでは,オリジナルを(ちょっと手を抜いた)次の方針で改造することにします. 

 # Web画面に "Xapian" 由来の設定などがあれば,それはそのままにし,削除しない. 由来の設定などがあれば,それはそのままにし,修正しない. 
 # Web画面に Estraier に対応するものがあれば,それは に関連するものがあれば,それは "Estraier" へと修正する.(現バージョンではない) へと修正する. 
 # エラーメッセージなどに ソースコード中の変数に "Xapian" という文字列があれば,それは    "Estraier" へと上書きする. 
 # ソースコード中 "Xapian" を呼び出す部分は削除する.(ロジックの変更) 
 # ソースコード中 "Xapian" という変数名がそのまま という文字列がそのまま    "Estraier" へと置き換えられる部分は へと置き換えられる部分は, "Estraier" へと修正する. 
 # ソースコード中 "Xapian" というラベル名称はそのまま利用する. 

 さて,変更するファイルは次の3つです. 

 * config/locales/ja.yml 
 * app/views/settings/_dmsf_settings.erb 
 * app/models/dmsf_file.rb 

 h2. config/locales/ja.ymlの修正 

 コード中のラベル "xapian_not_available" はそのままに,メッセージのみを修正しています. 

 <pre> 
 @@ -156,7 +156,7 @@ 
    :error_file_storage_directory_does_not_exist: "ファイル保存フォルダが存在せず作ることもできません"  
    :error_file_can_not_be_created: "ファイルを保存フォルダに作ることができません"  
    :error_wrong_zip_encoding: "Zip エンコーディングが正しくありません"  
 -    :warning_xapian_not_available: "Xapian が利用できる状態になっていません"  
 +    :warning_xapian_not_available: "Hyper Estraier が利用できる状態になっていません"  
    :menu_dmsf: "DMSF"  
    :label_physical_file_delete: "物理ファイルの削除"  
    :user_is_not_project_member: "あなたはプロジェクトのメンバーではありません"  
 </pre> 

 h2. app/views/settings/_dmsf_settings.erb 

 ライブラリ名称を xapian から estraier に変更します.しかし,先の ya.yml に対応する警告のラベルは変えません. 

 <pre> 
 @@ -75,7 +75,7 @@ 

  <hr /> 
  <% begin 
 -        require 'xapian' 
 +        require 'estraier' 
        xapian_disabled = false 
     rescue LoadError      %> 
      <p class="warning"><%= l(:warning_xapian_not_available) %></p>  
 </pre> 


 h2. app/models/dmsf_file.rb 






 へと修正する.(ロジックは変更しない)