コンテンツにスキップ

全文検索を使う

一覧の URL に q を付けると、語を含むエントリーだけを取り出せます。サイトの検索の欄から、記事を探すときなどに使います。

  • [読み取り]の権限のある API キー。発行のしかたは API キーを作る、権限を決める にあります
  • 検索できるのは、コレクションの一覧だけです。1 件やシングルを取り出す URL に q を付けると 400 になります

下の例では、<ホスト名> をあなたの環境のホスト名に、<API キー> を API キーに置き換えてください。コンテンツタイプ ID は「posts」の例です。

「Rust」と「入門」の両方を含むエントリーを探します。語は空白で区切ります。

ターミナルウィンドウ
curl -G https://<ホスト名>.hakocms.net/api/v1/content/posts \
-H "Authorization: Bearer <API キー>" \
--data-urlencode "q=Rust 入門"

当てはまるエントリーが、関連の強い順に items に入って返ります。total は当てはまる数です。返る形は、ふつうの一覧と同じです(エントリーを取り出す)。

{
"items": [
{
"sys": { "id": "rust-intro", "contentType": "posts", "version": 2 },
"title": "Rust 入門"
}
],
"total": 1,
"limit": 20,
"offset": 0
}

(sys の日時は省いています。)

探す決まりは次のとおりです。

  • 探す先は、テキスト、テキストエリア、リッチテキストのフィールドです。カスタムや繰り返しのフィールドの中も探します
  • 空白で区切った語を、すべて含むエントリーが当てはまります
  • 記号や空白だけのときは、絞り込みません。すべてのエントリーが返ります
  • order を付けなければ、関連の強い順に並びます

検索の欄に入れられた語を、q にそのまま渡します。URLSearchParams がエンコードします。

async function search(keyword) {
const params = new URLSearchParams({ q: keyword, limit: "10" });
const res = await fetch(
`https://<ホスト名>.hakocms.net/api/v1/content/posts?${params}`,
{ headers: { Authorization: "Bearer <API キー>" } },
);
const { items, total } = await res.json();
return { items, total };
}
console.log(await search("Rust 入門"));

公開中のエントリーを探すだけなら、[読み取り]だけのキーをブラウザで使ってかまいません。

ほかのパラメーターと組み合わせる

Section titled “ほかのパラメーターと組み合わせる”

q は、where、order、limit、offset と一緒に使えます。2026-10-01 からあとに公開した記事の中で、新しい順に探します。

ターミナルウィンドウ
curl -G https://<ホスト名>.hakocms.net/api/v1/content/posts \
-H "Authorization: Bearer <API キー>" \
--data-urlencode "q=Rust" \
--data-urlencode 'where=sys.publishedAt >= "2026-10-01"' \
--data-urlencode "order=-sys.publishedAt"

order を付けると、関連の強さではなく、order の順に並びます。where と order の書き方は 絞り込む、並べる、ページに分ける にあります。

preview=true を付けると、下書きの値で探します(下書きを取る)。

管理画面でエントリーの本文にある語を q に入れて、そのエントリーが items に入って返れば、検索できています。

当てはまらないときは、次を確かめてください。

  • エントリーが[公開中]になっているか。下書きの値は、preview=true を付けないと探しません
  • 語が、テキスト、テキストエリア、リッチテキストのフィールドに入っているか。数値やセレクトなどのフィールドは探しません
  • 空白で区切った語を、すべて含んでいるか