Skip to main content

Developer Index を検索

1 min read

公開コードリポジトリの issue、マージ済みのプルリクエスト、README に加え、厳選されたドキュメントサイトを検索します。結果は関連度順に表示され、一致した本文箇所が Markdown 形式で含まれます。

配列フィルターを JSON として渡す場合は、同じパスで POST を使用できます。

繰り返し可能なフィルターは、GET でどちらの形式も受け付けます。types=issue&types=pull_request のように query パラメータを繰り返す形式、または types=issue,pull_request のようにカンマ区切りの 1 つの値を指定する形式です。

インデックスは2つの部分に分かれており、これら2つのフィルターはそれぞれ独立して検索範囲を制限します。

  • repos はリポジトリ側、つまり issuepull_requestreadme タイプの範囲を制限します
  • sources はドキュメント側、つまり doc タイプの範囲を制限します
  • 両方を指定すると、2つの部分は共通部分ではなく結合されるため、いずれかから一致する結果が返されます

各フィルターは片方の部分にのみ適用されるため、指定されたどのタイプにも一致し得ないフィルターは、何も返さずに処理されるのではなく拒否されます。

  • types にリポジトリタイプが含まれない状態で repos を指定すると、400 が返され、repos が要求されたどのタイプにも一致できないこと、およびリポジトリタイプを追加するか repos を外す必要があることが報告されます
  • typesdoc が含まれない状態で sources を指定すると、400 が返され、sources cannot match any requested type; add doc or drop sources となります

7 つのリポジトリフィルター (language (Rust など) 、topic (async など) 、license (MIT など) 、min_starsmax_starsarchivedfork) は、コードリポジトリの属性を表します。インデックス内のドキュメントページの大半は、リポジトリに紐付かないクロール済み Web サイトから取得されています。そのため、リポジトリの属性でそのようなページを含めたり除外したりすることはできません。

したがって、これらのフィルターのいずれかを指定し、sources で範囲を指定しないリクエストでは、doc の結果は返されません。インデックスのドキュメント側は実行されないため、レスポンスに含まれるのはリポジトリの根拠のみ、すなわち issuepull_requestreadme タイプです。これは仕様であり、インデックスの不具合ではありません。

ドキュメント結果を取得するには、リポジトリフィルターを削除してください。また、sources でドキュメント側の範囲を指定し、レスポンス内の sources エコーを確認して ID がインデックス化されていることを確認することもできます。

sources に指定できる値#

sources は固定の列挙型ではありません。ドキュメントのソース ID を受け付けます。各 ID は最大 512 文字の空でない文字列で、1 リクエストあたり最大 20 個指定できます。ID はインデックス内のドキュメントサイトを示しており、その一覧は随時追加されます。

ID が解決されることを確認するには、その ID を渡し、レスポンスに追加される sources 配列を確認します。この配列は sources を送信した場合にのみ含まれ、指定した各 ID と、その ID がインデックス化されているかどうかをリクエスト時のまま返します。

indexed: true は、ソースに公開済みの世代があることを示し、そのソースのドキュメントの根拠が表示される場合があります。indexed: false は、その ID に一致するものがないことを示します。これにより、インデックスに存在しない ID と、単に何も見つからなかった query を区別できます。

repos も同様に返され、indexedtypes 配下のタイプ別内訳を含む repos 配列として返されます。

ワークフローの概要については、Developer Index ガイドを参照してください。