#fedibird #fedibird_info 全文検索のメンテナンスですが、終盤に入りました。(でもこれが長い)
新しい投稿が順次検索可能になっていっています。
全文検索は、Elasticsearchという独立した検索サーバを設置して、Mastodon本体と連携をとりながら動作します。
実際には、Elasticsearchが使える場合は、アカウントの検索、ハッシュタグの検索にも用いるように切り替わります。
新しい投稿がされたときや、お気に入りなどリアクションがされたときに、検索に必要な情報をMastodonからElasticsearchに書き込んでいます。
検索する際は、Elasticsearchが結果として投稿のIDを教えてくれるので、そこから必要な投稿データをMastodon側で揃えてユーザーに返します。
今回のように過去データをリセットした場合、Elasticsearchに書き込まれていないデータが大量に出てきます。
Mastodonにはメンテナンスコマンドでこれをまとめて反映する機能があるので、現在それを実行中です。これにはかなりの時間がかかります。
Fedibirdでは最新投稿からこれを反映していくようにしているので、だんだん古い投稿がみられるようになっていきます。
#fedibird #fedibird_info 今回のElasticsearch側のメンテナンスは、インデックス内容の変更に伴うデータ刷新と、形態素解析器をKuromojiからSudachiに切り替える作業を行いました。
インデックス(ここでは全文検索用のデータをデータベースに保存すること)する内容は、後ほど検索オプションを提供するための仕込みで、いろいろと増やしています。
形態素解析器の切り替えは、単語の間に空白を設けない日本語の文章を分析して切り分けるための仕組みが変わるということで、sudachiはその基礎となる辞書が大きいこと、分割が検索に適していることから、検索精度にも影響してくる変更です。
とはいえ、口語調であったり、短い文章が多かったり、辞書にない言葉が使われているなど、うまく分割できないことも多いので、検索の際は " " で囲う方法も覚えておいてください。
たとえば『将棋』と検索しても、『将来』とか『大将』が検索結果にでてきてしまいますが、これを "将棋" と指定するとそのままの表現で検索するので、より目的にかないます。
通常の検索は表記揺れに強い(多少表現が違ってもヒットする)反面、余計なものを結果に出す欠点があるということで、うまく使い分けてください。
さて、自分の投稿の検索範囲の指定方法です。
プロフィール説明文への特定キーワード記載で、Fedibird側が認識します。
#searchable_by_all_users
誰でも検索できる
#searchable_by_followers_only
フォロワーが検索できる
#searchable_by_reacted_users_only
リアクションした人だけ検索できる(Mastodon標準)
プロフィール説明文が記載できる実装であれば、通常のMastodonでも、Misskeyでも、PleromaやAkkomaでも、Fedibirdのネイティブ指定と同様の効果となります。
自分の投稿をより広い範囲で検索して見つけて欲しい人は、記載しておくことをお勧めします。
まだFedibirdでしか効果がありませんが、明示しれあれば、他の実装で拾ってくれるようになるかもしれません。
また、Misskeyの方で、検索されたくない場合も、この記載をしておくことをお勧めします。
この記載はMisskeyには効果がないので、引き続きあなたの投稿は検索対象になりますが、指定する人が多ければ、Misskeyの検索範囲の見直しの切っ掛けになるかもしれません。
@Az_Kitty65 優先されます。
あくまでアカウントに設定するものはデフォルト値で、投稿に指定する際の初期値として使われるだけです。 #fedibird
@noellabo ありがとうございます!
#fedibird #fedibird_info 以下、余談です。
実のところ、あまりプロフィールにキーワード記載という方法を普及させたくはないのですが、他にうまくこれを指定して連合させる方法がないため、今回思い切って導入に踏み切りました。
Fedibirdではこの情報を、アカウント情報のjsonの中で専用のフィールドで持たせています。これを普及させたいところですが、なかなか難しいのです。
プロフィール記載だと、たとえばPixelfedやPeerTubeのような実装、WordPressのActivityPub対応プラグインなどでも、Fedibirdから検索されやすいようにすることができるなど、まあ柔軟性の面では強いのです。