« Apache+TomcatでSSLクライアント証明書 | Main | Trac Ticketの日時表示 »

2007.06.20

JTracの検索機能

 JTracには検索機能が実装されていますが、そのエンジンとしてはApache Luceneが利用されています(JTrac2.0-dev7ではLucene2.0.0が利用されているようです)。チケットを登録する毎に、自動的にインデックスの作成処理が行われるようになっているようですが、明示的なインデックスの再構築を行うこともできます(Optionメニュー内からRebuildで可能です)。

 残念ながら、デフォルトで設定されているアナライザがorg.apache.lucene.analysis.SimpleAnalyzerであるため、日本語に対する検索はできません(SimpleAnalyzerに関しては、関口宏司のLuceneブログ Analyzerクラス等で概要が書かれています)。

 とはいうものの、JTracはAnalyzerの設定をxmlファイルで定義するようになっているので、Analyzerさえ準備すれば任意のものに切り替えて利用することが可能です(まぁ、最悪ソースコードを編集して再コンパイルすれば任意のAnalyzerに切り替え可能ですが)。日本語を扱うのであれば、JapaneseAnalyzerあるいはCJKAnalyzerが選択肢に上がってくるかと思いますが、JapaneseAnalyzerはsen等を準備する必要があるので、今回はシンプルにCJKAnalyzerを使ってみました。

 Luceneのアーカイブに含まれているlucene-analyzers-2.0.0.jarファイルを、webapp/WEB-INF/libフォルダ内にコピーし、webapp/WEB-INF/applicationContext-lucene.xmlファイル内の

<bean id="analyzer" class="org.apache.lucene.analysis.SimpleAnalyzer"/>

の部分を
<bean id="analyzer" class="org.apache.lucene.analysis.cjk.CJKAnalyzer"/>

に書き換えれば準備はOK。

 既にチケットが登録されている状態の場合、管理者でログインしインデックスの再作成を行う必要がありますが、日本語でも問題なくチケットの検索を行うことができるようになります。

|

« Apache+TomcatでSSLクライアント証明書 | Main | Trac Ticketの日時表示 »

Subversion・Trac・etc.」カテゴリの記事

Comments

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



TrackBack


Listed below are links to weblogs that reference JTracの検索機能:

« Apache+TomcatでSSLクライアント証明書 | Main | Trac Ticketの日時表示 »