Aggregate's hybrid search is missing fusionType, unlike Get's hybrid
Describe your feature request
Get{ClassName}(hybrid: {...}) exposes a fusionType argument to choose between
rankedFusion (legacy) and relativeScoreFusion — see
adapters/handlers/graphql/local/get/hybrid_search.go:70-73.
Aggregate{ClassName}(hybrid: {...})'s equivalent input object has no fusionType field
(adapters/handlers/graphql/local/aggregate/hybrid_search.go:49-114), so Aggregate hybrid
queries are silently locked to the default fusion algorithm (HybridRelativeScoreFusion)
with no way to select rankedFusion.
This isn't a case of the underlying logic not supporting it — both Get and Aggregate
already route through the same shared ExtractHybridSearch function
(adapters/handlers/graphql/local/common_filters/hybrid.go:136-141), which already reads
and applies fusionType whenever it's present in the input map. The capability exists
end-to-end; it's just missing from Aggregate's GraphQL schema.
Happy to open a PR — I have a working implementation adding the field to Aggregate's
schema and confirming (via new resolver-level tests) that both rankedFusion and
relativeScoreFusion now correctly propagate through to aggregation.Params.
Code of Conduct
- I have read and agree to the Weaviate's Contributor Guide and Code of Conduct
Source: weaviate/weaviate