コンテンツにスキップ

集計

Show:

Aggregateエンドポイントは、バケット内のドキュメントをメタデータフィールドでグループ化し、各異なる値のカウントを返します。ファセット、ヒストグラム、カテゴリサマリーを構築するために使用します。

注意: このエンドポイントは、後方互換性のためにリクエストボディでcollectionを使用します。新しいSchift APIでは、同じ概念はbucketと呼ばれます。

メタデータキーでドキュメントをグループ化し、カウントします。

HeaderRequiredDescription
AuthorizationYesBearer API key (Bearer $SCHIFT_API_KEY).
Content-TypeYesMust be application/json.
ParameterTypeRequiredDescription
collectionstringYes集計するバケット名。互換性のためにcollectionとして保持。
group_bystringYesグループ化するメタデータキー。
filter_keystringNoグループ化前にフィルタリングするためのオプションのメタデータキー。
filter_valuestringNoフィルタキーに一致するオプションの値。

カテゴリごとにドキュメントをカウントします:

Terminal window
curl -X POST https://api.schift.io/v1/aggregate \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $SCHIFT_API_KEY" \
-d '{
"collection": "product-docs",
"group_by": "category"
}'
FieldTypeDescription
groupsarray値とカウントを持つグループのリスト。
groups[].valuestringグループ化された値。
groups[].countintegerこのグループ内のアイテム数。
totalintegerすべてのグループの合計カウント。
{
"groups": [
{
"value": "Getting Started",
"count": 12
},
{
"value": "API Reference",
"count": 28
},
{
"value": "Troubleshooting",
"count": 7
}
],
"total": 47
}

filter_keyfilter_valueを指定することで、グループ化の前にドキュメントを事前にフィルタリングできます。メタデータが一致する値を含むドキュメントのみが集計に含まれます。

Terminal window
curl -X POST https://api.schift.io/v1/aggregate \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $SCHIFT_API_KEY" \
-d '{
"collection": "product-docs",
"group_by": "status",
"filter_key": "category",
"filter_value": "API Reference"
}'

Response:

{
"groups": [
{
"value": "published",
"count": 22
},
{
"value": "draft",
"count": 6
}
],
"total": 28
}
StatusMeaningExample response
402クエリークォータが超過または許可されていません。{"detail": {"allowed": false, ...}}
403現在のプランではクエリークォータが利用できません。{"detail": "Query quota unavailable. Upgrade your plan."}
404指定されたコレクションまたはバケットが見つかりませんでした。{"detail": "Collection not found: product-docs"}
501設定されたベクトルバックエンドが集計をサポートしていません。{"detail": "Aggregate not supported by backend: <BackendName>"}
VersionStatusNotes
v1Deprecated現在のエンドポイント。collectionパラメータはレガシー統合との互換性のために保持されています。