Warning: リポジトリと同期できません (サポートされていないバージョンコントロールシステム "svn です。 Python のライブラリに "svn" が正しくインストールされているか確認してください。)

リポジトリの全文検索 with Namazu プラグイン Ver 0.1

1. 概要

Tracからリポジトリの中を検索するためのプラグインを 作りました。 全文検索にはNamazuを使用しています。

仕組み:バッチでリポジトリをエクスポートし、Namazuのインデックスを生成します。Trac内でコマンド版namazuを実行し、その結果を表示します。

制限に書いていますが、Tracのmod_python版でしか動作しません。CGI版ではエラーになります。 また、過去のリポジトリは検索できません。そんなこんなでバージョンは0.1です。

確認済み環境

Windows 2000Pro
apache 2.0.54
Trac-0.92-ja
Hyper Estraier 1.1.2インストール方法は「使うためには」を参照

制限

  • mod_python版でしか動作しません。CGI版で動作しないことを確認しています。
  • リポジトリ内の最新のファイルしか検索できません。
  • Windowsでしか動作確認してません。でもWindows固有の実装はしてないのでUnix系でも動くかも。
  • apacheからnamazu.exeを起動できるように権限設定が必要かもしれません。
  • もちろん動作は無保証です。コメントに何か書いてくれれば反応はするかもしれません。

3. セットアップ

3.1 ダウンロード

停止

3.2 インストール

SearchNamazuPluginのインストールを行います。(Tracのプラグインに共通する説明は、[wiki:TracPlugins TracPlugins]を参照してください。)

(1) eggの設置

zipを解凍してください。
解凍して出来たフォルダ配下のsrcディレクトリに移動してください。
以下のコマンドを実行して下さい:

$ python setup.py bdist_egg

distフォルダが作成されます。
その中にある*.eggファイルを、TracEnvのplugins ディレクトリにコピーしてください。

3.3 Namazuをセットアップする

Namazuをインストールして動くようにしてください。以下の手順で私はできました。できないひとは自分で調べてね。

(1) ActivePerl 5.8.7.815をインストール

http://www.activestate.com/ 右上のメニューからPerlを選択し、Standard Distrivutionをダウンロード。メールアドレスとかきかれるが、未入力でも問題なし。 ActivePerl-5.8.7.815-MSWin32-x86-211909.msiを起動してPerl 5.8をインストール。

(2) kakasiをインストール

http://kakasi.namazu.org/index.html.ja Win32用 バイナリパッケージ(kakasi-2.3.4.zip)をダウンロード解凍してできたkakasiフォルダをC:\に配置。 README-ja.win32を読みながら環境変数(PATH,KANWADICTPATH,ITAIJIDICTPATH)を設定。

(3) namazuをインストール

http://www.namazu.org/windows/index.html.ja http://www.namazu.org/pipermail/namazu-win32-users-ja/2004-December/000143.html nmz2014beta-1.exe をダウンロードし、インストール。セットアップフォルダをC:\namazuにし、あとはすべてデフォルト値。インストール後に表示されるREADME-ja.txtを読んで動作確認。

3.4. テンプレートファイルを置く

NMZ.result.totrac をnamazuのテンプレートフォルダ(namazuのデフォルトでは C:\namazu\share\namazu\template)に置いてください。次節でmakeindex.batを実行した後に、インデックス生 成フォルダ内に NMZ.result.totracが存在していればOKです。

3.5.インデックスの設定をする

ポジトリのエクスポートとインデックス生成を行うバッチを作成します。 makeindex.batを適切に書き換えてください。冒頭部の環境変数を書き換えてください。
なお、リポジトリのエクスポートの認証は考慮してません。認証が必要であればsvn exportに適切な引数を設定してください。

EXPORT_FOLDERリポジトリのエクスポート先となるフォルダ。空のフォルダを指定。
REPOS_URIエクスポート元となるリポジトリのURI
INDEX_FOLDERインデックスの生成先フォルダ。空のフォルダを指定。
REPLACE_BEFORE検索結果として使うURIの置換元文字列
REPLACE_AFTER検索結果として使うURIの置換文字列

makeindex.batを実行した後で、 以下のコマンドを実行して、正しく検索されることを確認してください。

 namazu -q -r --result=totrac [query] [index_path]

[query]には適当に結果が出るキーワード、[index_path]にはmakeindex.batで 指定したINDEX_FOLDERを指定してください。

なお、登録されるURLはTracのリポジトリブラウザでRoot直下が/となるように REPLACE_BEFORE,REPLACE_AFTERを調整する必要があります。 たとえば、リポジトリブラウザでRoot/trunk/test3/検索のテスト.docと 表示されるファイルは、namazuで/trunk/test3/検索のテスト.docと 表示されるようにしてください。

例:

C:\>namazu -q -r --result=totrac Trac C:\namazu\var\namazu\index
日本語.txt
不明
Sun, 15 Jan 2006 21:28:48
【Trac】チケットの入力補助 InputPad 仕事でTrac使う場合、チケットの入力って結構面
倒ですよね。担当者とか日付とか、あとコメントも定型で入力する必要があったり。 そ
んなわけで、チケットの入力を補助するツー
/trunk/test3/フォルダ/日本語.txt
C:\>

動作確認ができたらmakeindex.batが1日1回実行できるようにWindowsのタスクを 設定してください。

3.6. trac.iniを設定する

テキストファイルでtrac.ini(リポジトリのフォルダのconf配下)を開いて serachnamazuというブロックを追加してください。

namazu_pathnamazu.exeの絶対パス
index_pathインデックス生成パス(makeindex.batのINDEX_FOLDER)

例:

[serachnamazu]
namazu_path = C:\namazu\bin\namazu.exe
index_path = C:\namazu\var\namazu\index

3.7. Apacheを再起動する

4. 検索してみる。

検索タブをクリックして、「リポジトリ」チェックボックスが表示されることを確認してください。
適当なキーワードで検索して、結果(source:××)が表示されることを確認してください。
リンクをクリックして、画面がリポジトリブラウザに切り替わり、 正しくそのファイルを表示していることを確認してください。

5. ご意見・ご要望

ご意見・ご要望はこちら から登録してください。
これまでに登録されたものはこちら を参照してください。

(None)

添付ファイル