メモの検索API ``` GET /teams/:domain/posts ``` 指定したドメインのチームにあるメモを検索し、一覧を取得します。 ### スコープ `読み取り` ### リクエストパラメータ | パラメータ | 内容 | 必須 | デフォルト値 | 最大値 | | --- | --- | :---: | :---: | :---: | | q | 検索文字列 | | * | | | page | ページ番号 | | 1 | | | per_page | 1ページあたりのメモ数 | | 20 | 100 | | semantic_search | 意味検索を使うかどうか(`true` / `false`) | | false | | ### cURLでのリクエスト例 ```sh curl \ -H 'X-DocBaseToken: ACCESS TOKEN' \ https://api.docbase.io/teams/kray/posts?q=memo ``` ### 検索オプションを指定したリクエスト例 [検索オプション](https://help.docbase.io/posts/59432?list=%2Fsearch&q=%E6%A4%9C%E7%B4%A2#%E6%A4%9C%E7%B4%A2%E3%82%AA%E3%83%97%E3%82%B7%E3%83%A7%E3%83%B3)を使うと、グループや投稿者、タグなどでメモを絞り込めます。 ```sh:グループで絞り込み curl \ -H 'X-DocBaseToken: ACCESS TOKEN' \ https://api.docbase.io/teams/kray/posts?q=group:DocBase ``` ```sh:投稿者とタグで絞り込み curl \ -H 'X-DocBaseToken: ACCESS TOKEN' \ https://api.docbase.io/teams/kray/posts?q=author:amano%20tag:API ``` ### 意味検索を指定したリクエスト例 `semantic_search=true` を指定すると、通常の全文検索と意味検索を組み合わせて検索します。両方の検索結果をもとに順位を付け、検索語とは異なる言い回しのメモも探せます。 ```sh:意味検索を使う curl \ -H 'X-DocBaseToken: ACCESS TOKEN' \ 'https://api.docbase.io/teams/kray/posts?q=memo&semantic_search=true' ``` - DocBase AIが有効で、[DocBase AIプラス(ベータ)](https://help.docbase.io/posts/4212216)を利用できるチームで使えます。 - ※ ベータ期間中は、DocBase AI機能をオンにしているチームで意味検索オプションを利用できます。 - `q` に検索オプション以外の検索語を含めると、意味検索が働きます。たとえば `引き継ぎ tag:API` では、意味検索とタグによる絞り込みを併用できます。`tag:API` のように検索オプションだけを指定した場合や、`*` を指定した場合は、通常の検索になります。 - 意味検索が適用されると、検索結果は次のようになります。 - 結果は関連度順(`desc:score`)で返します。検索文字列で[並び順](https://help.docbase.io/posts/59432)を指定した場合は、指定した並び順を優先します。 - 検索結果は全ページを合わせて最大100件です。`meta.total` も最大100で、検索条件に一致するメモの総数とは限りません。 - AIの利用が許可されていないグループのメモと `no-ai` タグ付きのメモは、結果に含まれません。 - 意味検索のリクエスト回数には、ユーザーごとに上限があります。上限を超えると `429` を返し、`Retry-After` ヘッダーに再試行までの待ち時間(秒)を示します。 意味検索に関するエラー | ステータス | error | 内容 | | :---: | --- | --- | | 400 | `bad_request` | `semantic_search` に `true` / `false` 以外を指定した | | 403 | `rag_unavailable` | 検索語を含む検索で、チームが意味検索を利用できない | | 429 | `semantic_search_rate_limit_exceeded` | 回数制限を超えた | | 503 | `semantic_search_temporarily_unavailable` | 意味検索を一時的に利用できない。しばらく待ってから再試行してください | ### レスポンス例 ```json:json { "posts": [ { "id": 4, "title": "メモのタイトル", "body": "メモの本文", "draft": false, "archived": false, "url": "https://kray.docbase.io/posts/4", "created_at": "2016-04-15T18:19:03+09:00", "updated_at": "2016-04-15T18:19:03+09:00", "published_at": "2016-04-15T18:19:03+09:00", "scope": "everyone", "sharing_url": "https://docbase.io/posts/4/sharing/abcdefgh-0e81-4567-9876-1234567890ab", "tags": [ { "name": "日報"} ], "user": { "id": 3, "name": "user3", "profile_image_url": "https://image.docbase.io/uploads/aaa.gif" }, "stars_count": 1, "good_jobs_count": 2, "comments_count": 1, "groups": [] }, /* …repeat */ ], "meta": { "previous_page": null, "next_page": "https://api.docbase.io/teams/kray/posts?page=2&per_page=20", "total": 39, "semantic_search": false } } ``` レスポンスの `meta.semantic_search` は、意味検索が実際に適用されたかを示します。リクエストで `semantic_search=true` を指定しても、この値が `false` になる場合があります。次のページや前のページを取得するには、`meta.next_page` と `meta.previous_page` に含まれるURLをそのまま使用してください。