Skip to content

feat: Add retrieve_online_documents_v2 support to Qdrant online store #6445

@patelchaitany

Description

@patelchaitany

What is missing

  • QdrantOnlineStore has retrieve_online_documents (v1) only — no retrieve_online_documents_v2
  • FeatureStore.retrieve_online_documents_v2() raises NotImplementedError for online_store.type: qdrant
  • v1 ignores requested_features; returns a 5-tuple, not Dict[str, ValueProto]
  • No query_string / hybrid path in Feast's Qdrant integration
  • create_collection configures dense vectors only (no sparse vectors for keyword search)

File: sdk/python/feast/infra/online_stores/qdrant_online_store/qdrant.py

What is required (v2 contract)

Implement retrieve_online_documents_v2 per OnlineStore interface:

  • Input: requested_features, embedding and/or query_string, top_k, distance_metric, table, config
  • Output: List[(event_ts, EntityKeyProto, Dict[str, ValueProto])] with requested features + distance (+ text_rank when text search is used)

Reference: milvus.py, mongodb.py, postgres.py

What to include

  1. Dense vector searchquery_points / Query API; honor requested_features in feature_dict; map score → distance
  2. Multi-feature per hit — handle Qdrant's one-feature-per-point write model (join/fetch or storage change)
  3. Hybrid / query_string — sparse vector index + write path; encode query_string to sparse vector; Query API prefetch (dense + sparse) + fusion (RRF); support embedding-only, text-only, and combined queries
  4. Tests — unit and/or integration under sdk/python/tests/
  5. Docs — update docs/reference/alpha-vector-database.md and docs/reference/online-stores/qdrant.md

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions