SearchAggregation
SearchAggregation インスタンスは、vector search のためのバケット集計の1レベルを定義します。バケットキー、バケット上限、バケットごとのメトリクス、バケットの順序、代表ヒット、およびオプションのネストされた集計を制御します。
class pymilvus.SearchAggregation
Constructor
SearchAggregation(
fields: list[str],
size: int,
metrics: dict[str, dict[str, str]] | None = None,
order: list[dict[str, str]] | None = None,
top_hits: TopHits | None = None,
sub_aggregation: SearchAggregation | None = None,
)
PARAMETERS:
-
fields (list[str]) [REQUIRED] -
バケットキーを構成する、空でない scalar フィールド名のリストです。複数のフィールドは、リスト順で複合キーを形成します。
meta["region"]のような JSON パスは受け付けられません。 -
size (int) [REQUIRED] -
この集計レベルで返されるバケットの最大数です。値は正の整数でなければなりません。
-
metrics (dict[str, dict[str, str]] | None) -
バケットごとのメトリクス定義です。各キーはメトリクスのエイリアスで、各値は
{operation: field}形式の単一キー辞書です。サポートされる操作はcount、sum、avg、min、maxです。countのみ"*"を受け付けます。その他の操作では、フィールド名または_scoreが必要です。 -
order (list[dict[str, str]] | None) -
リスト順に評価されるバケットの並び順ルールです。各項目には、1つのメトリクスエイリアス、
_count、または_keyが含まれており、"asc"または"desc"にマッピングされている必要があります。 -
top_hits (TopHits | None) -
各バケットから返される代表エンティティを設定します。
-
sub_aggregation (SearchAggregation | None) -
現在のレベルの各バケットの下にネストされたバケットレベルを定義します。
RETURN TYPE:
SearchAggregation
EXCEPTIONS:
- ParamError - 空または無効な fields、正でない size、サポートされていないメトリクス定義、無効な並び順キーまたは方向、または型が誤っているオブジェクトに対して発生します。
Example
from pymilvus import SearchAggregation, TopHits
aggregation = SearchAggregation(
fields=["category"],
size=5,
metrics={
"product_count": {"count": "*"},
"avg_price": {"avg": "price"},
},
order=[{"product_count": "desc"}, {"_key": "asc"}],
sub_aggregation=SearchAggregation(
fields=["brand"],
size=3,
top_hits=TopHits(
size=2,
sort=[{"rating": "desc"}, {"_score": "desc"}],
),
),
)