プロジェクト

全般

プロフィール

操作

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

« 前 | リビジョン 5/10 (差分) | 次 »
Masanori Machii, 2011/10/20 17:58


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

DMSFとRedmineの関係

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

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

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

  1. DMSFが管理する文書*1はすべて $REDMINE/files/dnsf へ置かれる.
  2. インデックスファイルを作成するプロセスが定期的に動作し,それは $REDMINE/files へ置かれる*2

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

インデックスデータベース

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

Xapianの設定

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

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

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

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

config/locales/ja.ymlの修正

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

@@ -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: "あなたはプロジェクトのメンバーではありません" 

app/views/settings/_dmsf_settings.erb

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

@@ -75,7 +75,7 @@

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

app/models/dmsf_file.rb


  • *1 DMSFが管理する文書:ファイル名が同じであっても,インデックスは異なるよう,接頭辞が付いています.
  • *2 $REDMINE/files へ置かれる:これは管理者が設定できるのですが,わかりやすくするため,推奨としました.


Updated by Masanori Machii , 12年以上前に更新
Access count: 49687 :since 2009-10-30

Masanori Machii さんが12年以上前に更新 · 5件の履歴