}elasticsearchは、型を無くす方向で順次切り捨てに入っており、型をつけて投げるとエラーになります。このように、型を削除して投げればOKです。1,7.0では数値と数値の意味(ぴったりその数eqなのか、それ以上gteという参考値なのか)を返してきます。},どうするか最初に触れたように、Mastodon自体が直接elasticsearchを呼んでいるワケではないので、Mastodonのソースコードをいじっても対応できません。7.0に対応するのを待って、Mastodonでその対応版を使う、というのが正解なんですが、chewyって最終更新が半年前ぐらい前で、あまりアクティブじゃないので、たぶんすぐには対応してくれない。上記の非互換性については、オプションで以前と同じ挙動に変更できるようにしてくれています。一応対応残しておくけど、8.0になったらそれも切り捨てるから、今のうちになんとかしろ、という感じです。しょうがないので、chewyをフォークして、elasticsearch-rubyのv7.0.0を参照し、必要なところに互換性設定のオプション指定した、やっつけブランチを作ることにします。Mastodonの方で、そいつをGemfileに指定してやればOKという寸法です。オプションですが、型についてはinclude_type_name=trueって付ければ、型がついていても受理するよ、ということです。件数はrest_total_hits_as_int=trueって指定すれば、これまでと同じように数値で返すよ、ということです。いうわけで、ウチでフォークして作ったやっつけコミットはこちら。これをMastodonで使ってやればOKです。7.0、パフォーマンス改善したり、メモリ使い切らないように制御したり、なにやら地味に良くなっているので、早く周辺環境含めて対応できるといいですね。Mastodonの対応ある程度詳しい人しかやらないと思うので、例によって雑に説明します。手元の作業用リポジトリで適当にブランチ切って下さい。feature-compatibility-workaround-for-es7Gemfileのchewyのところを書き換えます。installして、Gemfile.lockを更新します。ES7"commitして、このブランチで動作確認してから、本番適用してください。日本語ダメダメなので、sudachiとか使った方がいいよMastodonの標準の状態だと日本語の処理がダメダメでちゃんと出て欲しい言葉が検索できないので、sudachiなどを使うように設定した方が良いです。これについては記事を書いてあるので、そちらを参考にしてください。sudachi、もう7.0に対応してるの、ホントありがたい......。ElasticsearchをMastodonとは別のサーバに設置する別の方法(プロキシを使う)Balさんがスマートな解法を編み出していたので、紹介させていただきます。APIなので、間にプロキシを挟んで、そこで上述した互換オプションを追加してしまうという方法です。オプションの指定はURLに追加するので、rewriteで対応できるというわけです。