risingwavelabs/risingwave · error
no index found for BatchVectorSearchLookupJoin
Error message
no index found for BatchVectorSearchLookupJoin
What it means
Raised in LogicalVectorSearchLookupJoin::to_batch when to_vector_index_lookup_join returns None, i.e. no vector index matching the query's vector column and distance type exists on the lookup table, so the batch vector search plan cannot be constructed.
Solutions
- Create a vector index covering the queried vector column and distance function before issuing the batch vector search lookup join.
- Check that the query's ORDER BY ... <-> / distance expression matches the index definition.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at src/frontend/src/optimizer/plan_node/logical_vector_search_lookup_join.rs:378 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of risingwavelabs/risingwave@6469eb736d (2026-09-11).
Data as JSON: /api/errors/78d4bbc650fd93fe.
Report an issue: GitHub.
Appendix: source
Thrown at src/frontend/src/optimizer/plan_node/logical_vector_search_lookup_join.rs:378
include_distance: self.core.include_distance,
as_of,
vector_column_idx: self.core.input_vector_col_idx,
hnsw_ef_search,
ctx: self.core.ctx(),
};
return Ok(Some(core));
}
Ok(None)
}
}
impl ToBatch for LogicalVectorSearchLookupJoin {
fn to_batch(&self) -> Result<BatchPlanRef> {
if let Some(core) = self.to_vector_index_lookup_join(|plan| plan.to_batch())? {
return Ok(BatchVectorSearch::with_core(core).into());
}
bail!("no index found for BatchVectorSearchLookupJoin")
}
}
View on GitHub (pinned to 6469eb736d)