この間作ったリポジトリ検索プラグインのHyperEstraier版を作りました。
こっちはCGI版でもmod_python版でも動きます。
仕組み:バッチでリポジトリをエクスポートし、HyperEstraierのインデックスを生成します。Trac内でコマンド版cmdestを実行し、その結果を表示します。
cmdestの出力をXMLにしたせいでかえって文字コードがややこしかった。動作確認はWindowsのみで行ってます。
HyperEstraierのpythonバインディングは使いませんでした。Windowsでのビルドに挫折。
←画像はサボってnamazu版と同じですが、同じ感じです。
searchhyperestraier-plugin.mp3(拡張子を.zipに変更してください。)
ソース:searchhyperestraier-plugin_src.mp3(拡張子を.zipに変更してください。)
確認済み環境
Windows 2000Pro | |
apache 2.0.54 | |
Trac-0.92-ja | |
Hyper Estraier 1.1.2 | インストール方法は「使うためには」を参照 |
制限
- リポジトリ内の最新のファイルしか検索できません。
- Windowsでしか動作確認してません。でもUnix系でも動くかも。
- apacheからcmdest.exeを起動できるように権限設定が必要かもしれません。
- もちろん動作は無保証です。コメントに何か書いてくれれば反応はするかもしれません。
0.Tracの準備
Trac-0.9.2-jaが動いていること。また、plug-inを使うために setuptools (バージョン 0.6) が必要です。
setuptoolsをインストールしていない人は、ez_setup.py(←このリンク先を保存)をダウンロードし、以下に示すように実行して下さい。なお、インターネット接続可能な環境が必要です。
C:\> python ez_setup.py
1.HyperEstraierをセットアップする
HyperEstraierをインストールして動くようにしてください。以下の手順で私はできました。できないひとは自分で調べてね。
(1)HyperEstraierをインストール
http://hyperestraier.sourceforge.net/ よりダウンロード(Windowsなら「 Windows版のバイナリパッケージ 」)。
Unix系ならビルドするのかな。Windowsでは適当なフォルダ(C:\hyperestraier等)に解凍。
(2)環境変数PATHの設定
環境変数PATHに、(1)で置いたフォルダを追加。
2.インデックスの設定をする
リポジトリのエクスポートとインデックス生成を行うバッチを作成します。 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.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/test3browser_tracがenabledになる場合は、登録されるURLはTracのリポジトリブラウザでRoot直下が/となるように replace_left,url_leftを調整する必要があります。
たとえば、リポジトリブラウザでRoot/trunk/test3/検索のテスト.docと表示されるファイルは、/trunk/test3/検索のテスト.docとなるように調整してください。
難しければ、何も設定せずに、検索結果として表示されたURLを見ながら調整してください。
4.eggファイルを置く
SearchRepositoryWithHyperEstraier-0.1-py2.3.eggをリポジトリのフォルダのpluginsフォルダに置く。
5.Apacheを再起動する
6.検索してみる。
ライセンスについて検索タブをクリックして、「リポジトリ」チェックボックスが表示されることを確認してください。
適当なキーワードで検索して、結果(source:××)が表示されることを確認してください。
リンクをクリックして、画面がリポジトリブラウザに切り替わり、正しくそのファイルを表示していることを確認してください。
修正BSDライセンス に従います。
Hyper Estraier はFree Software Foundation が公表した GNU Lesser General Public Licenseのバージョン2.1あるいはそれ以降の各バージョンとのことです。詳細は http://hyperestraier.sourceforge.net/を参照。
2006.01.30 | Trac | トラックバック(1) | コメント(0) |
トラックバックURL↓
http://weekbuild.blog39.fc2.com/tb.php/14-92c2fdbd
Trac からリポジトリ内全文検索やってみた
リポジトリの全文検索 with HyperEstraier プラグイン ver 0.1 を試してみた。 この WeekBuildのHACK日記 は他にも色々と Trac のハックをされているので、Trac フリークにはお勧め。ページランクアップにも貢献しておきたい :-) さて本題。HyperEstraier 検索プラグインは
2006.03.08 14:38 | 鷹の島