LoginSignup
0
0

FESS で Redmine チケットの返信をクロールする

Last updated at Posted at 2023-01-19

チケット本文はこちら FessのデータストアクロールでRedmineのチケットを検索する を参考にしました。

チケットの返信のクロールも同じくデータストアからクロールします。

注意
スクリプトで指定する url はチケット本体と同じにしてはいけません

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

  • ハンドラー名「DatabaseDataStore」を指定

パラメーター


driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/bitnami_redmine? 
useUnicode=true&characterEncoding=UTF-8
username=XXXXXX
password=XXXXXX
sql=select i.id as id, i.subject as subject, notes, j.id as jid, DATE_FORMAT(j.created_on,'%Y-%m-%dT%H:%i:%s.00Z') AS last_modified_dt, p.id as project_id from issues i, journals j , projects p Where i.id = j.journalized_id and i.project_id NOT IN(6,12,34,62,80,129) and j.notes != '' and p.id=i.project_id and p.status=1

  • url=は環境に合わせてください
  • チケットの返信(編集:コメント)は、Table journals の notes に入ってます
  • 日付は created_on
  • Notes が空ではないこと
  • 特定のプロジェクトIDは除外

スクリプト


url="https://xxx.xx.xx.xx/redmine/issues/" + id + "#note-" +jid
host="https://xxx.xx.xx.xx/"
site="https://xxx.xx.xx.xx/redmine/issues/"
title="【Redmine - Ticket Reply】" + id + " : " +subject
content=notes
cache=notes
digest=notes
anchor=
content_length=content.length()
last_modified=last_modified_dt
timestamp=last_modified_dt

  • timestamp に返信の作成日を指定します。
  • jid は journal の id でチケットの返信番号とは異なります。
    • (jid はかなり大きな値になります)
  • 検索結果から飛ぶとチケットの頭から開きます。

注意:

  1. FESS のインデックスは、スクリプトの url= で指定する値に基づいて作成されていると思われる
  2. インデックスはユニークで重複は許されない
  3. インデックスが同じ値(文字列)になる場合、あとからクロールされた情報で上書きされる
  4. データストアのクロールで、Redmine チケットは
    url="https://172.25.85.74/redmine/issues/" + id
    として指定している。(id はチケット番号)
  5. チケットへのリプライも同じ指定にしていると、直近にスケジュールされたクロール情報で上書きされてしまうことになる
  6. これを避けるためには url 指定を別のものにしなければならない
    ...
0
0
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
0
0