21:00概要Mastodonのバージョン2.3.0から、全文検索などのElasticsearchとの連携ができるようになり、古いトゥートの検索や高速な検索ができるようになりました。デフォルトでは、Elasticsearchとの連携は切られていますが、設定をすることで使えるようになります。ここでは、MastodonとElasticsearchの連携方法を紹介します。2.3.1ElasticsearchとはElasticsearchは、全文検索エンジンと呼ばれるもので、データを入れておけば、大量のデータの中から高速に目的のデータを見つけ出すことができます。Mastodonであれば、大量のトゥートのデータをElasticsearchに入れておいて、トゥートなどの検索の時には、そのElasticsearchを使って目的のデータを見つけ出します。通常のデータベースから探すよりも高速に検索することができるので、SNSなどの検索でも使われており、実績があります。サポートなどは別ですが、無料で使い始めることができます。コンピュータのリソースをたくさん使うので、利用する上でコンピュータのリソースが足りるかは考えたほうがいいです。最低でも、1GBのメモリを持ったサーバ、できれば1.5GB以上のメモリを持ったサーバを用意したほうがいいです。ElasticsearchのインストールElasticsearchのインストール方法は、ここでは触れません。Dockerを使ってElasticsearchを使っている場合は、docker-compose.ymlの次の部分のコメントを解除して次のようにすればElasticsearchが起動できます。./elasticsearch:/usr/share/elasticsearch/data設定Elasticsearchを起動したら、Mastodonの方にElasticsearchを使うように設定する必要があります。設定は、.env.productionでします。.env.productionの設定でコメントになっている部分のコメントを解除して、次のようにします。古い.env.productionの場合、この設定がないので、ファイルに次の内容を追加します。configurationES_ENABLED=trueES_HOST=esES_PORT=9200ES_ENABLEDがElasticsearchを使うようにするための設定で、ES_HOSTがElasticsearchのホスト名、ES_PORTがポート番号です。Dockerを使っている場合などはこのままでもいいですが、Dockerを使っていなかったり、Dockerを使っていてもElasticsearchを別のサーバなどで起動している場合は、ES_HOSTなどを適切に書き換えてください。設定が終わったら、次に既存のトゥートをElasticsearchに入力します。Elasticsearhへの入力は、次のコマンドでします。chewy:deployDockerを使っている場合は次のコマンドです。chewy:deployトゥートがたくさんあると、時間がかかります。その場合、気長に待ちましょう。コマンドの実行が終わったら、MastodonとElasticsearchの連携は終わりです。さいごにMastodonのインスタンスが小規模な場合はそれほど効果は発揮しないかもしれませんが、中規模以上のインスタンスでは検索のストレスが減るため快適になると思います。Elasticsearchの運用という手間は増えますが、もしよく検索しているのであれば設定をする価値はあると思います。