WeaviateEx.Query.HybridVector (WeaviateEx v0.7.4)

View Source

Vector sub-search configuration for hybrid queries.

In hybrid queries, the vector component can be configured using either near_text (text-to-vector) or near_vector (explicit vector) searches, with full support for Move operations and target vectors.

Examples

# Text-based vector search with Move
hv = HybridVector.near_text("machine learning",
  move_to: Move.to(0.5, concepts: ["AI"]),
  move_away_from: Move.to(0.3, concepts: ["biology"])
)

Query.hybrid(query, "search term", vector: hv, alpha: 0.7)

# Vector-based search with target vectors
hv = HybridVector.near_vector(embedding, target_vectors: "content_vector")

Query.hybrid(query, "search term", vector: hv, alpha: 0.5)

Summary

Functions

Create a text-based vector sub-search for hybrid queries.

Create a vector-based sub-search for hybrid queries.

Convert to GraphQL format.

Convert hybrid vector configuration to GraphQL string format (legacy).

Convert to gRPC format for query execution.

Types

search_type()

@type search_type() :: :near_text | :near_vector

t()

@type t() :: %WeaviateEx.Query.HybridVector{
  certainty: float() | nil,
  distance: float() | nil,
  move_away: WeaviateEx.Query.Move.t() | nil,
  move_away_from: WeaviateEx.Query.Move.t() | nil,
  move_to: WeaviateEx.Query.Move.t() | nil,
  query: String.t() | nil,
  target_vectors:
    WeaviateEx.Query.TargetVectors.Config.t() | String.t() | [String.t()] | nil,
  text: String.t() | nil,
  type: search_type(),
  vector: [float()] | nil
}

Functions

near_text(query, opts \\ [])

@spec near_text(
  String.t(),
  keyword()
) :: t()

Create a text-based vector sub-search for hybrid queries.

Options

  • :certainty - Minimum certainty threshold
  • :distance - Maximum distance threshold
  • :move_to - Move towards concepts/objects (use Move.to/2)
  • :move_away_from - Move away from concepts/objects (use Move.to/2)
  • :move_away - Alias for :move_away_from (deprecated)
  • :target_vectors - Target vectors for multi-vector collections

Examples

HybridVector.near_text("machine learning", certainty: 0.8)

HybridVector.near_text("ML",
  move_to: Move.to(0.5, concepts: ["artificial intelligence"]),
  target_vectors: "content_vector"
)

near_vector(vector, opts \\ [])

@spec near_vector(
  [float()],
  keyword()
) :: t()

Create a vector-based sub-search for hybrid queries.

Options

  • :certainty - Minimum certainty threshold
  • :distance - Maximum distance threshold
  • :target_vectors - Target vectors for multi-vector collections

Examples

HybridVector.near_vector([0.1, 0.2, 0.3], distance: 0.2)

HybridVector.near_vector(embedding, target_vectors: ["vec1", "vec2"])

to_graphql(hv)

@spec to_graphql(t()) :: map() | String.t()

Convert to GraphQL format.

to_graphql_string(config)

@spec to_graphql_string(t()) :: String.t()

Convert hybrid vector configuration to GraphQL string format (legacy).

Examples

sub = HybridVector.near_text("espresso brewing")
HybridVector.to_graphql_string(sub)

to_grpc(hv)

@spec to_grpc(t()) :: map()

Convert to gRPC format for query execution.