LoginSignup
6
5

More than 5 years have passed since last update.

FessでSlackを高速に横断検索する

Last updated at Posted at 2018-09-12

この記事では、全文検索サーバー Fessを利用してSlackのメッセージを横断検索する方法を紹介します。

これはFess上で実際に検索を行っている画面のスクリーンショットです。

導入手順

FessでSlackを横断検索するための手順を説明します。

導入の流れは次のようになります。

  1. プラグイン追加
  2. Fessの起動
  3. 認証設定
  4. クローラの設定・実行

1. プラグイン追加

Fessの現バージョン(12.3.0)には、デフォルトでは含まれていない機能であるため、自分で追加する必要があります。
ここからfess-ds-slack-12.2.0.jarをダウンロードします。
ダウンロードしたjarファイルは[Fessのパス]/app/WEB-INF/lib/に配置します。

2. Fessの起動

このページを参考にFessを起動します。

3. 認証設定

データを取得するために認証情報をパラメータとして与える必要があり、そのための設定を行います。

3-1. Slackアプリ作成

このページで「Create New App」をクリックしてSlackアプリを作成します。

App Nameは自分が分かれば何でもOKです。
Development Slack Workspaceは検索をしたいワークスペースを指定します。

3-2. Permission設定

アプリ作成後、左側のメニューから「OAuth & Permissions」を選択し、Scopesを設定します。

とりあえず必要なのは、channels:history, channels:read, users:read, users.profile:read, team:readです。
(files:readが必要となる機能は今後実装予定です)

3-3. アプリインストール

同ページの上部から、「Install App to Workspace」します。

インストール後に「OAuth Access Token」として表示されている文字列が後で必要になります。

4. クローラの設定・実行

Slackをクロールするための設定をします。
公式ドキュメントのこのページも参考にしてください。

4-1. クローラの設定

Fessの管理画面を開き、クローラ > データストアと移動し、新規作成をします。
新規作成画面では、

  • 名前
  • ハンドラ
  • パラメータ
  • スクリプト

の4項目を設定して、作成を完了します。

「名前」には好きな文字列を入力してください。
「ハンドラ」はSlackを選択してください。
「パラメータ」は次のようなフォーマットで入力してください。

token=xoxp-************-************-************-********************************
channels=general,random

キーと値の説明は次のようになります。

キー
token 3-3で入手したアクセストークン
channels 検索対象チャンネル(,区切りでチャンネルを指定、*allで全てのチャンネル)

「スクリプト」は次のようなフォーマットで入力してください。

title=message.user + " #" + message.channel
digest=message.text + "\n" + message.attachments
content=message.text
created=message.timestamp
timestamp=message.timestamp
url=message.permalink

取得出来る値のキーと値の説明は次のようになります。
ここで言う「Message」はSlackの1メッセージを指しています。

キー
message.text Messageの内容
message.user Messageを送信したユーザ名(表示名)
message.channel Messageが送信されたチャンネル名
message.timestamp Messageが送信された日時
message.permalink MessageをSlack上で開くリンク
message.attachments Messageの添付項目の要約

設定画面はこんな感じになります。

4-2. ジョブスケジューラの作成

4-1で作成したクロールをクリックすると、クロール設定が開き、そこから「新しいジョブの作成」をします。

後からでも変更はできるので、とりあえず試す場合はそのままの設定で大丈夫です。
詳しいジョブスケジューラの設定については、このページを参考にしてください。

4-3. クローラの実行

システム > スケジューラと移動し、4-2で作成したジョブを開きます。
その画面から、「今すぐ開始」をします。

状態が「実行中」から「有効」になるまで待ちます。

4-4. 検索のテスト

検索フォームから適当に検索してみます。

これでFessでSlackを横断検索することが出来るようになりました。

6
5
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
6
5