noellabo's tech blog

@noellaboの技術ブログ

Fedibirdのプロフィール検索機能(技術情報)

プロフィール検索の技術情報

Fedibirdの検索に、プロフィールの説明文に対して全文検索を行い、アカウントを検索できる機能が実装されています。

標準のMastodonとの違いを説明しておきます。

概要

プロフィール本文から指定したクエリ文字列によって全文検索し、一致したアカウントを一覧として返します。投稿の全文検索と同様の指定が有効です。

プロフィール検索の対象となるのは、ディレクトリ掲載を許可したアクティブなアカウントです。一覧からは、ミュート、ブロック、未フォローのサイレンスが除外されます。

Misskeyの『アカウントを見つけやすくする』はディレクトリ掲載と互換性があり同じ意味を持ちます。

検索結果は、最後の投稿日時を参考に、最新順になります。

機能を有効にするには、サーバの構成でElasticsearchが有効になっている必要があります。

REST API

検索

API

  • GET /api/v2/search
追加のパラメータ 意味
with_profiles boolean プロフィール一致したアカウントをprofilesで受け取ります
type string 指定できる値にprofilesが追加されます

説明

APIの成功時に返すエンティティに、profilesが追加されています。

{
  "accounts": [...],
  "statuses": [...],
  "hashtags": [...],
  "profiles": [...]
}

with_profilesパラメータを指定しない、あるいはfalseにすると、互換モードとなり、accountsにプロフィール一致したアカウントが追記される形で返されます。

with_profilesをtrueにして呼び出すと、profilesにアカウントエンティティが返されるようになります。

Instanceエンティティ

追加の属性 意味
fedibird_capabilities array of string profile_searchを含んでいれば、上記API変更を含むプロフィール検索をサポートしている
fedibird_capabilities: [
  "profile_search"
],