@kamisuke おはよう、王
主に、Fediverseへの関心に基づいた投稿を行うアカウントです。DTP・印刷に関する話をしたり、同人の話をしたり、カレーをブーストしたりします。
Mastodonのcollaborator(開発者の一員)です。また、独自機能を盛り込んだFedibirdを管理・開発しています!
Mastodonサーバ『fedibird.com』の管理者アカウントでもあります。ご連絡は当アカウントへ、サーバインフォメーションについては https://fedibird.com/about/more と @info を参照してください。
このアカウントは、notestockで公開設定になっていません。
このアカウントは、notestockで公開設定になっていません。
何か書きためたモノ、本当にちゃんと書いたものはブログに勝るモノはないという感じだけど、
構えずにアウトプットするタイプのもので、一番あとで参照できて、有効活用できるのは、Mastodonに書いたものなのよね。
なぜそのときそれを書いたのか動機がはっきりしているので、なまじ汎用性を考えて書くものより切り込みが鋭い。
なので、fedibird.comには、全文検索というか各種条件を指定して検索できる機能は必須だし、毎日たくさん検索しているよ。自分がヘビーユーザーなのだ。
割ともう、Fedibirdの検索機能は考えられるものを揃えてあって、他でできるこの機能がない、って思うものはほぼないんだけど、何かある?
たぶん、いろんな機能があるらしい、ということはわかっていても、使い方がわからないんじゃないかとは思うんだけど……
Elasticsearch、確かに専用にサーバ設置しないとしんどいし、それがコストでも管理面でもしんどかったりするんですが、
fedibird.comぐらいの規模でPostgreSQLで検索まで捌こうとすると負荷が一点集中し過ぎるので、分散させたいっていうのもあるんですよ。メインのデータベースから機能を分離したい。
Elasticsearchはドキュメントベースのデータベースなのでリレーショナルデータベースで得意なことができなかったり不便なことも多いんですけど、それを補ってあまりある検索のしやすさがあって、高機能な検索サービスを構築するのが凄く簡単です。
@yamatsumi_s WebUIやクライアントアプリは、サーバからAccountとStatus(ユーザー情報と投稿の情報)を取得して表示していますが、もう一つ、自分と相手の関係についてRelationshipという情報をサーバから得ています。
ブロックされているとか、フォローしている、されている、アカウント購読しているしていない、ブーストを表示するしない、などの情報です。
通常のMastodonではアカウントの詳細などフォローボタンを表示するときにだけ必要で使われるのですが、
Fedibirdのタイムラインにフォロー状態を表示する機能を有効にしているときには、すべての投稿の投稿者についてタイムライン表示前にあらかじめRelationshipを取得しておく必要があります。このため、通常よりもAPIコールやデータの量、Relationshipをサーバが応答する処理量などが多くなります。
タイムラインには同じアカウントの投稿が何度も流れてきますから、一度取得したものはWebUIやクライアントアプリ側でキャッシュしておいて、未知のアカウントが来た時にだけRelationshipを要求して取得します。なので、連合タイムラインを流し見ているときは特に大量に取得することになります。
@mkrdrw ミュート実行のタイミングで、通知を隠さない指定をした場合、リストから既存の投稿を削除する処理が働かない不具合がありましたので、これをさきほど修正しました。
WebUIだと一瞬表示されて即座に消えることがありました。SubwayTooterなどのクライアントでは、そのまま表示されてしまうのではないかと思います。
ただし、既にミュートしているアカウントの投稿が流れてきてしまう、ということであれば、それについては現象の確認と対応ができていませんので、引き続き未解決です。