langgenius / langgenius/dify-plugins
[yaxuanm/qdrant] Hybrid Search fails on named-vector collections (dense/sparse)
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 553
- Forks
- 878
- Avg merge
- 1d 2h
- Merged PRs (30d)
- 125
Description
Plugin
yaxuanm/qdrant v0.0.1
Problem
Hybrid Search fails on collections with named vectors (dense, sparse) created outside the plugin (e.g. custom embed scripts).
Error: Qdrant responded with HTTP 400: Wrong input: Not existing vector name error:
Root cause
- Operation inference checks
textbefore hybrid indicators → runsoperation: "query"instead ofhybrid_search - Plain query sends unnamed
vectorto/points/search— invalid when collection has only named vectors - Sparse vector is not generated from
textin hybrid path (only dense embedding is created)
Reproduction
- Collection: named vectors
dense(3072) +sparse - Tool: Qdrant · Hybrid Search
- Inputs:
text,using_dense: dense,using_sparse: sparse,fusion_method: rrf - Embedding: text-embedding-3-large
Expected
hybrid_search → /points/query with prefetch using dense and sparse
Actual
query → /points/search with flat vector array (no vector name)
Fix verified locally (v0.0.2)
- Route hybrid before text→query
- Set
operation: hybrid_searchon hybrid tool YAML - Generate sparse via
fastembed(Qdrant/bm25) - Add
fastembeddependency
Environment
- Dify 1.14.2 (self-hosted)
- Qdrant Cloud
- Plugin: yaxuanm/qdrant 0.0.1 from Marketplace
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the named-vector case with the Qdrant Hybrid Search tool and trace operation inference from the text input. Inspect the hybrid tool YAML and the dense/sparse embedding path, including the fastembed dependency, then verify that hybrid_search uses /points/query with named dense and sparse vectors rather than /points/search with an unnamed vector.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- backend, databases, search
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 58/100