ビジネスチャットツールとしてMattermostを導入

作成:
更新:

念願であったVPS(Virtual Private Server)をついに契約した話は以下に書いたとおりですが、

VPSを契約したもう1つの大きな理由、それは、以前から関心を持っていたビジネスチャットツールの「Mattermost」を使ってみたい・・・、もちろん、みんな大好き、OSS(Open Source Software)です。

関連:社労士がVPSを契約した理由:情報セキュリティ対策と実践的学習

Slackが、今や世界No1のビジネスチャットツールであることに異論はないと思いますが、その代替OSSと言われているのがMattermostです。

※ なお、画像はGitHubのMattermostのページから拝借しました。

Mattermostの特徴は以下のとおりです。

  • Slackに代わる次世代の選択肢
    • 今や世界標準のビジネスチャットツールの地位となったSlackと同等の操作性と機能を備えつつ、より企業のニーズに特化したビジネスチャットツール。
  • 最高水準のセキュリティとデータ管理
    • 自社専用サーバーでの運用が可能(オンプレミス:On-Premises)なため、Slackのような外部クラウドではなく、機密情報を自社で完全にコントロール可能。
  • コストパフォーマンスと拡張性
    • Slackの使い勝手はそのままに、組織に合わせた柔軟なカスタマイズが可能で、大規模な運用でも効率的なチーム連携を実現。
Qちゃん
人事労務とかけ離れた内容ですが、A先生は何を目指しているんですか?😱
A先生
便利なツールがあったら使ってみたいし、顧問先にも紹介したい、ただ、それだけですよ🤣
それに、社労士がVPSでMattermostを運用しているって面白くないですか?

日本語検索が効かない問題とその解決

【2026/7/9追記】

導入からしばらく運用していたところ、過去のメッセージを検索してもまったくヒットしないことに気づきました。

チャットツールは検索できてこそ価値があります。備忘録も兼ねて、原因と対処法を簡単に記録しておきます。

症状

一例ではありますが、「Google Meet」という文字列を含むメッセージを投稿していたにもかかわらず、「Google」でも「Meet」でも検索に引っかかりませんでした。日本語も同様です。

原因

以下のようにSQLを用いて調べたところ、Mattermostのデータベース(PostgreSQL)が、検索用の単語分割を正しく行っていませんでした。

SELECT to_tsvector('english', '本日はGoogle Meetですね。承知しました。');
 'meetですね':2 '承知しました':3 '本日はgoogl':1

「本日は」と「Google」がくっついて「本日はgoogle」 という1つの単語として扱われています。同様に「Meet」と「ですね」も「meetですね」になっています。

PostgreSQLの標準機能は、日本語と英字の境界を単語の区切りとして認識しません。そのため、インデックスには「本日はgoogl」という語しか存在せず、「google」で検索しても一致していませんでした。

英文の中であれば「Google Meet」は正しく分割されます。日本語に挟まれた瞬間に壊れる、という挙動でした。

つまり「日本語が検索できない」問題と「英単語が検索できない」問題は、同じ原因だったわけです。

対処:Bleveの有効化

Mattermostには、標準の検索機能の代わりに「Bleve」という検索エンジンを使う選択肢があります。BleveはCJK(中国語・日本語・韓国語)に対応しており、日本語と英字の境界を正しく扱います。

設定ファイル「config.json」を以下のように編集します。

    "BleveSettings": {
        "IndexDir": "/mattermost/bleve-indexes",
        "EnableIndexing": true,
        "EnableSearching": true,
        "EnableAutocomplete": true,
        "BatchSize": 10000
    },

再起動後、システムコンソール → 環境 → Bleve から「インデックス付与を今すぐ開始する」を実行します。

この工程が最も重要です。設定を有効化しただけでは、過去のメッセージはインデックスされません

これで「Google Meet」「Meet」「本日」のいずれでも、正しく検索できるようになりました👍

作業時の注意点

  • 「config.json」の所有者はコンテナ側のユーザーのため、「sudo」での編集が必要です
  • 編集後はJSONが壊れていないか必ず確認します。カンマの過不足でMattermostが起動しなくなります
  • 「.env」に「MM_BLEVESETTINGS_*」という環境変数が定義されている場合、そちらが「config.json」より優先されます
Qちゃん
「導入して終わり」じゃないんですね😅
A先生
そうなんです。でも、こうして自分で手を動かすからこそ、顧問先に「ここに気をつけてください」と具体的にお伝えできるわけです😊
Qちゃん
導入直後に、日本語と英語を含めたメッセージで検索テストをしておくことが大事ですね。
A先生
まさに、そこが今回の反省点です😅 数か月運用してから気づくと、その間のログが検索できないまま蓄積されていることになります(後からでも一括でインデックスを付与できますが)。

本を執筆しました。ぜひご購入ください → Amazonへ

一人社労士事務所のほどほど経営術
登録無料 社労士限定 お悩み相談室
up_line