NIP-50は、Nostrリレーのための汎用検索機能を定義し、タグやIDによる構造化クエリを超えた全文検索をクライアントに可能にします。

仕組み

プロトコルはREQメッセージのフィルターオブジェクトにsearchフィールドを追加します:

  1. クライアントが人間が読める検索クエリを送信(例:「最高のnostrアプリ」)
  2. リレーがイベントデータ(主にcontentフィールド)に対してクエリを解釈・マッチング
  3. 結果は時系列順ではなく関連性でランク付け
  4. limitフィルターは関連性ソート後に適用

検索フィルターはkindsidsなどの他の制約と組み合わせて、より具体的なクエリを行うことができます。

検索拡張

リレーはオプションで以下の拡張パラメータをサポートできます:

  • include:spam - デフォルトのスパムフィルタリングを無効化
  • domain:<domain> - 検証済みNIP-05ドメインでフィルタリング
  • language:<code> - ISO言語コードでフィルタリング
  • sentiment:<value> - ネガティブ/ニュートラル/ポジティブなセンチメントでフィルタリング
  • nsfw:<true/false> - NSFWコンテンツを含めるか除外

クライアントの考慮事項

  • クライアントはsupported_nipsフィールドを通じてリレー機能を確認すべき
  • クライアント側での結果検証が推奨される
  • すべてのリレーが検索を実装しているわけではない;オプション機能のまま

主要ソース:

言及:

関連項目: