クリックログAPI

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

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

クリックの記録

リクエスト

HTTPメソッド POST
エンドポイント /api/v2/click

検索結果のクリックを検索ログに記録します。 匿名の呼び出し元、および検索ログ機能が無効なインストールでは、成功レスポンスで logged: false を返します(エラーにはなりません)。

状態を変更するリクエストのため、 X-Fess-CSRF-Token ヘッダーが必要です( APIの概要 を参照)。

リクエストボディ

Content-Type: application/json で、以下のフィールドを持つ JSON (ClickRequest)を送信します。

{
  "doc_id": "a1b2c3d4e5f6",
  "query_id": "f8b1c2d3e4a5",
  "rank": 1,
  "rt": 1717142400000
}
リクエストボディ
doc_id ドキュメント ID(str, 必須, パターン ^[A-Za-z0-9_-]+$ )。クリックを記録する対象のドキュメントを指定します。
query_id 検索 API ( /search )が返す query_id (str, 任意)。クリックを元の検索クエリに関連付けます。
rank 結果リスト内の順位(1 始まり、int, 任意)。
rt 元の検索リクエストの epoch ミリ秒(int64, 任意)。未指定時はサーバーの現在時刻が既定値になります。

表: リクエストボディ

レスポンス

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

{
  "response": {
    "status": 0,
    "ok": true,
    "logged": true
  }
}

各フィールドについては以下の通りです。

レスポンスフィールド
ok 常に true (bool)。
logged 検索ログの永続化が無効、または呼び出し元が匿名のとき false (bool)。その場合でも 200 レスポンスを返します。

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

注釈

logged: true は、クリックが検索ログの記録キューに受け付けられたことを示します。永続化は非同期に行われます。

エラーレスポンス

エラーモデルの詳細は APIの概要 を参照してください。このエンドポイントが返す HTTP ステータスは以下の通りです。

エラーレスポンス
ステータスコード 説明
400 Bad Request リクエストボディが不正な JSON の場合、または doc_id が未指定・パターンに一致しない場合。
403 Forbidden CSRF トークンの欠落・失効などで許可されない場合。
404 Not Found 指定した doc_id に対応するドキュメントが見つからない場合。
405 Method Not Allowed POST 以外の HTTP メソッドが使用された場合( Allow: POST ヘッダーを返します)。
413 Payload Too Large リクエストボディがサイズ上限(2 KiB)を超えている場合。
415 Unsupported Media Type Content-Typeapplication/json でない場合(UTF-8 が必要です)。
500 Internal Server Error サーバー内部エラーが発生した場合。

表: エラーレスポンス