LoginSignup
9
12

More than 5 years have passed since last update.

FessのデータストアクロールでRedmineのチケットを検索する

Posted at

FessでRedmineをクロールする場合の設定が公式ドキュメントに載っている。

公式ドキュメントでは、ウェブクロールでクロールする手順になっている。

では、データストアクロールでのクロールはどのような手順になるのかと思い、試してみた。

環境など

  • Redmine
    • バージョン 3.3.4
    • DBはPostgreSQL
  • Fess
    • バージョン 12.0.1
    • CentOSにrpmでインストール

クロール対象はRedmineのチケットのみとする。

設定1. JDBCドライバの配置

こちらからPostgreSQLのJDBCドライバをダウンロードする。

ダウンロードしたJDBCドライバを<Fessのインストールディレクトリ>/app/WEB-INF/lib/(RPMでインストールした場合は/usr/share/fess/app/WEB-INF/lib/)に配置する。

設定2. データストアクロールの設定

2018-02-18_21h15_25.png

「パラメータ」欄

driver=org.postgresql.Driver
url=jdbc:postgresql://<Redmineのホスト名>:5432/redmine?& ssl=false?charSet=UTF-8
username=<RedmineのDBにアクセスするためのユーザ名>
password=<RedmineのDBにアクセスするためのパスワード>
sql=select id, subject, description, updated_on from issues

ポイント

  • 「sql」にRedmineのDBのissuesテーブルからチケットのID、題名、説明、更新日時を取得するSQLを指定する

「スクリプト」欄

url="http://<Redmineのホスト名とパス>/issues/" + id
host="<Redmineのホスト名>"
site="<Redmineのホスト名>"
title="【Redmine - チケット】" + subject
content=description
cache=description
digest=description
anchor=
content_length=description.length()
last_modified=updated_on.substring(0,10) + "T" + updated_on.substring(11,23) + "Z"
location=
latitude=
longitude=

ポイント

  • SQLで取得するチケットのID、題名、説明、更新日時を各パラメータに当て込む

動作確認

以下のようなチケットを用意した状態でFessのクローラを実行する。

2018-02-21_08h04_44.png

クロール完了後、チケットの説明欄にある文言をFessで検索すると、Redmineのチケットがヒットする。

2018-02-21_08h05_42.png

課題

上記の設定では、チケットの題名と説明等のみしかFessに登録していない。
その他の項目(カスタムフィールドや注釈など)でも検索をしたい場合は、それらをクロールするよう、データストアクロールの設定を工夫する必要がある。

Tips

クローラのデバッグログを出力する

意図した通りにクロールがされていない場合は、クローラのデバッグログを出力すると、原因がわかる場合がある。

デバッグログを出力するには、ジョブの設定を編集し、logLevelに"debug"を指定する。

2018-02-24_12h12_21.png

この設定により、「システム情報 > ログファイル」から参照できる「fess-crawler.log」にデバッグログが出力されるようになる。

9
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
12