{{{ #!trachtml

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

1. 概要

この間作ったリポジトリ検索プラグインのHyperEstraier版を作りました。
こっちはCGI版でもmod_python版でも動きます。

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

cmdestの出力をXMLにしたせいでかえって文字コードがややこしかった。動作確認はWindowsのみで行ってます。
HyperEstraierのpythonバインディングは使いませんでした。Windowsでのビルドに挫折。

[[Image(20060501002.png)]]
[[VisitCounter(TracDoc/SearchHyperEstraierPlugin)]]

確認済み環境

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

制限

3. セットアップ

3.1 ダウンロード

以下からダウンロードしてください。
・[[Download2(SearchHyperEstraierPlugin Version 0.1,SearchHyperEstraierPlugin0.1,searchhyperestraierplugin,34)]]

3.2 インストール

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

(1) eggの設置

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

$ python setup.py bdist_egg

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

3.3 HyperEstraierをセットアップする

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

(1) HyperEstraierをインストール

http://hyperestraier.sourceforge.net/ よりダウンロード(Windowsなら「 Windows版のバイナリパッケージ 」)。
Unix系ならビルドするのかな。Windowsでは適当なフォルダ(C:\hyperestraier等)に解凍。

(2) 環境変数PATHの設定

環境変数PATHに、(1)で置いたフォルダを追加。

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

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

EXPORT_FOLDER リポジトリのエクスポート先となるフォルダ。空のフォルダを指定。
REPOS_URI エクスポート元となるリポジトリのURI
INDEX_FOLDER インデックスの生成先フォルダ。空のフォルダを指定。

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

 estcmd search -vx -sf -ic Shift_JIS [index_path] [query] >hoge.xml

[query]には適当に結果が出るキーワード(注:半角アルファベットで)、[index_path]にはmakeindex.batで指定した INDEX_FOLDERを指定してください。 結果はhoge.xmlファイルに出力されます。テキストエディタで開いて文字コードがUTF-8で出力されていることを確認してください。

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


3.5 trac.iniを設定する

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

index_path インデックス生成パス(makeindex.batのINDEX_FOLDER)
replace_left 検索結果のパスの頭で削るべき文字列。
browse_trac Tracのブラウザへのリンクを作るか否か。enabled=Tracのブラウザへのリンクを作る。デフォルトは'enabled'。
url_left URLを生成する際に頭につける文字列。browse_trac=enabledの場合は/がリポジトリのルートになるようにすること。
estcmd_path 環境変数PATHが設定済みなら設定不要。estcmd.exeの絶対パス。デフォルトは'estcmd'
estcmd_arg Windowsでは設定不要。estcmd.exeの引数。デフォルトは'search -vx -sf -ic Shift_JIS'
estcmd_encode Windowsでは設定不要。コマンド実行時のエンコード(Pythonでの形式)。デフォルトは'mbcs'

例:

[searchhyperestraier]
index_path = E:\RepositorySearch\casket
replace_left = E:\RepositorySearch\rep
url_left = /trunk/test3

browser_tracがenabledになる場合は、登録されるURLはTracのリポジトリブラウザでRoot直下が/となるように replace_left,url_leftを調整する必要があります。
たとえば、リポジトリブラウザでRoot/trunk/test3/検索のテスト.docと表示されるファイルは、/trunk/test3/検索のテスト.docとなるように調整してください。
難しければ、何も設定せずに、検索結果として表示されたURLを見ながら調整してください。

3.6 Apacheを再起動する

なお、WindowsでApacheを使用している場合、Apacheの再起動をしてもPATHを読み直してはくれません。PC自体を再起動してください。

4. 検索してみる。

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

5. 開発中のソースについて

開発中の最新版は、[[Download2(ここ,SearchHyperEstraierPluginDev,searchhyperestraierplugin,)]]から取得できます。
開発中のもののため動かない可能性もあります。

6. ご意見・ご要望

ご意見・ご要望は[/trac/newticket?component=SearchHyperEstraierPlugin こちら] から登録してください。
これまでに登録されたものは[query:?component=SearchHyperEstraierPlugin こちら] を参照してください。


[[FootNote]]

}}}