検索履歴API

このドキュメントでは、 Fess の v2 検索履歴 API について説明します。共通のレスポンスエンベロープ・エラーモデルについては APIの概要 を参照してください。

ベースURLは http://<Server Name>/api/v2/ です(ローカル環境の例: http://localhost:8080/api/v2 )。

注釈

検索履歴は、 search.history.enabled (デフォルト: true )と検索ログの記録の両方が有効な場合に利用できます。 /api/v2/ui/config の features.search_history で状態を確認できます。

最近の検索の取得

リクエスト

HTTPメソッド GET
エンドポイント /api/v2/search-history

ログインしているユーザーが、現在の仮想ホストで /api/v2/search を使って行った最近の検索を、新しい順に返します。返った条件で同じ検索を実行し直せます。

  • 1 ページ目の検索だけが対象です。同じ条件の検索は、最も新しい 1 件にまとめられます。検索語のない検索は含まれません。

  • 返す件数は最大 search.history.size (デフォルト: 10 )件です。

  • 検索ログは 1 分ごとのジョブで書き込まれるため、検索が履歴に現れるまで最大 1 分ほどかかります。

  • 履歴はセッションのログインユーザーに紐づきます。匿名の呼び出し元は auth_required (401) になり、アクセストークンはログインの代わりになりません。

  • 検索履歴の機能が無効な場合は invalid_request (400) になります。

リクエストパラメーターはありません。

レスポンス

成功時(200)は、共通エンベロープの response 直下に以下のフィールドが返ります。

{
  "response": {
    "status": 0,
    "record_count": 1,
    "data": [
      {
        "q": "fess",
        "fields": { "label": ["docs"] },
        "sort": "last_modified.desc",
        "requested_at": "2026-10-01T09:00:00Z",
        "hit_count": 42
      }
    ]
  }
}
レスポンスフィールド
record_count data 内の検索の件数(int)。
data 最近の検索の配列(新しい順)。条件のキーは /api/v2/search のリクエストパラメーター名で、その検索で使われなかったキーは省略されます。
data[].q 検索語(str)。
data[].fields fields.<name> で指定したフィールドの条件(フィールド名をキーとする値の配列)。
data[].ex_q 追加のクエリー(str の配列)。
data[].sort ソート順(str)。
data[].lang lang で指定した言語(str の配列)。
data[].requested_at 検索した日時(UTC、ISO-8601)。
data[].hit_count その検索のヒット件数(int64)。

表: レスポンスフィールド

エラーレスポンス

エラーレスポンス
ステータスコード 説明
400 Bad Request 検索履歴の機能が無効な場合。
401 Unauthorized ログインしていない場合。
405 Method Not Allowed HTTP メソッドが許可されていない場合。
500 Internal Server Error サーバー内部エラーが発生した場合。

表: エラーレスポンス

同梱のテーマでの表示

同梱の bootstrap テーマでは、ログインしたユーザーが空の検索ボックスをクリックするか、検索ボックスで下矢印キーを押すと、サジェストのドロップダウンに最近の検索が表示されます。項目を選ぶと、ラベルなどの条件も含めて同じ検索を実行します。 Fess 15.9 より前に記録された検索ログには条件が保存されていないため、履歴には表示されません。