From 52acfbaecc7666ed92266710b985a8cc13998af0 Mon Sep 17 00:00:00 2001 From: dyma solovei Date: Tue, 11 Aug 2026 18:06:55 +0200 Subject: [PATCH] feat(query): add diversity selection to Hybrid query --- .../client6/v1/api/collections/query/Hybrid.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/main/java/io/weaviate/client6/v1/api/collections/query/Hybrid.java b/src/main/java/io/weaviate/client6/v1/api/collections/query/Hybrid.java index d509e3765..4340c133e 100644 --- a/src/main/java/io/weaviate/client6/v1/api/collections/query/Hybrid.java +++ b/src/main/java/io/weaviate/client6/v1/api/collections/query/Hybrid.java @@ -21,6 +21,7 @@ public record Hybrid( QueryOperator near, FusionType fusionType, Float maxVectorDistance, + Diversity diversity, BaseQueryOptions common) implements QueryOperator, AggregateObjectFilter { @@ -53,6 +54,7 @@ public Hybrid(Builder builder) { builder.near, builder.fusionType, builder.maxVectorDistance, + builder.diversity, builder.baseOptions()); } @@ -67,6 +69,7 @@ public static class Builder extends BaseQueryOptions.Builder { QueryOperator near; FusionType fusionType; Float maxVectorDistance; + Diversity diversity; public Builder(Target searchTarget) { this.searchTarget = searchTarget; @@ -143,6 +146,14 @@ public Builder nearText(NearText nearText) { return this; } + /** + * Apply diversity selection to the query results. + */ + public Builder diversity(Diversity diversity) { + this.diversity = diversity; + return this; + } + @Override public final Hybrid build() { return new Hybrid(this); @@ -206,6 +217,10 @@ private WeaviateProtoBaseSearch.Hybrid.Builder protoBuilder() { hybrid.setTargets(targets); } + if (diversity != null) { + hybrid.setSelection(diversity.toProto()); + } + return hybrid; } }