リポジトリの全文検索 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_path | namazu.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. ご意見・ご要望
添付ファイル
- 20060501002.png (8.1 kB) - 登録者 weekbuild 19 年 前.
- makeindex.bat (440 bytes) - 登録者 hirobe 17 年 前.