Mattermost

  (最終更新日:2016.12.1)

MattermostのMySQLで日本語の全文検索に対応する方法

Mattermostでは日本語の部分検索が対応していませんので、例えば「よろしくお願いします。」を検索するときに「よろし」ではヒットしません。これじゃ使えない。

そこで、日本語での部分検索(日本語全文検索)に対応する方法をメモ的にご紹介しておきたいと思います。

但し、MySQLは5.7を利用します。(標準機能のngramを使う為)
5.6以前も対応できますが、手順が異なるので今回は 5.7 のみ。
ちなみにOSは CentOS 7 を想定して記述しています。

character-setの変更

my.cnf を修正してキャラクタセットを変更します。

$ vim /etc/my.cnf

下記の内容を追記、もしくは置き換えます。

[mysql]
default-character-set = utf8mb4

[mysqld]
character-set-server = utf8mb4
innodb_large_prefix = ON
innodb_file_format = Barracuda
innodb_file_format_max = Barracuda

MySQLを再起動

$ systemctl restart mysqld
$ systemctl status mysqld

全文検索用にngramでインデックスを再作成

全文検索用にngramを指定してFULLTEXTインデックスを再作成します。

$ mysql mattermost -u mattermost -p

下記SQLを実行。

mysql> ALTER TABLE Posts DROP INDEX idx_posts_message_txt;
mysql> ALTER TABLE Posts ADD FULLTEXT INDEX idx_posts_message_txt ('Message') WITH PARSER ngram COMMENT 'ngram reindex';

これで完了です。
日本語での部分検索ができるようになっているはず。

スポンサーリンク
スポンサーリンク

関連記事

  1. Mattermost

    【Mattermost】ユーザー管理をする方法

    Mattermostでユーザーの変更や削除といったユーザー管理をする際…

  2. Mattermost

    Mattermostで日本語フォントのスタイルを変更する方法

    SlackのクローンOSSの《Mattermost》で、スタイルシート…

  3. Mattermost

    Mattermost:pluginsディレクトリのエラーがログに出力される時

    Mattermostをバージョンアップ(3.5.0 → 4.9.2)さ…

  4. Mattermost

    Mattermost 4.4をCentOS 7にインストールする手順

    Mettermost 4.4 (今回は 4.4.2) を CentOS…

  5. Mattermost

    Mattermostを開くと502エラーが表示される時

    SlackのクローンOSSとして人気のあるMattermost。便利で…

  6. Mattermost

    Mattermost:スラッシュコマンド利用時にaddress forbiddenで失敗するとき

    Mattermost をバージョンアップ後、今まで使えていたスラッシュ…

コメント

    • yi
    • 2017年 7月 07日

    参考まで。

    dockerhubのmattermost/platform使って日本語検索に対応するだけでよければ、
    mattermost起動したあとに、

    root@850d5a5626d4:/# mysql $MYSQL_DATABASE -u$MYSQL_USER -p$MYSQL_PASSWORD
    mysql> ALTER TABLE Posts DROP INDEX idx_posts_message_txt;
    mysql> ALTER TABLE Posts ADD FULLTEXT INDEX idx_posts_message_txt (`Message`) WITH PARSER ngram COMMENT ‘ngram reindex’;
    mysql> exit

    とかするだけで、いけちゃってるようです。楽ですね・・・

      • おかしら
      • 2017年 7月 07日

      おぉ・・・DockerHubのを使うと楽ですね‥。
      OSからわざわざ準備したくないというような状況のときには便利そう。
      情報ありがとうございます!!!

  1. この記事へのトラックバックはありません。

最近の記事

  1. 【Apache】OpenSSL headers not fo…
  2. 【CentOS 7】yum updateがくっそ遅いときに試…
  3. Linux版のTomcat 9でWebアプリケーションマネー…
  4. CentOS 7でTomcat 9の起動スクリプトの作成と自…
  5. Warning: tomcat.service change…
PAGE TOP