pub struct VectorSearchBuilder<'e> { /* private fields */ }Expand description
Tethered vector-search builder returned from
NodeQueryBuilder::vector_search.
Accumulates filter predicates alongside a caller-provided vector query
and dispatches .execute() through
fathomdb_engine::ExecutionCoordinator::execute_compiled_vector_search,
returning SearchRows whose hits carry
modality = RetrievalModality::Vector, source = SearchHitSource::Vector,
match_mode = None, and vector_distance = Some(raw_distance). The
higher-is-better score field is the negated distance.
See dev/design-adaptive-text-search-surface-addendum-1-vec.md §Public
Surface for the full surface contract and degradation semantics.
Implementations§
Source§impl<'e> VectorSearchBuilder<'e>
impl<'e> VectorSearchBuilder<'e>
Sourcepub fn with_match_attribution(self) -> Self
pub fn with_match_attribution(self) -> Self
Request per-hit match attribution.
When set, every returned hit carries
attribution: Some(HitAttribution { matched_paths: vec![] }) per
addendum 1 §Attribution on vector hits. The empty matched_paths
list is intentional — vector matches have no per-field provenance
to attribute, but the Some(...) sentinel lets downstream code
distinguish “attribution was requested and produced no paths” from
“attribution was not requested at all”.
Sourcepub fn filter_logical_id_eq(self, logical_id: impl Into<String>) -> Self
pub fn filter_logical_id_eq(self, logical_id: impl Into<String>) -> Self
Filter results to a single logical ID.
Sourcepub fn filter_kind_eq(self, kind: impl Into<String>) -> Self
pub fn filter_kind_eq(self, kind: impl Into<String>) -> Self
Filter results to nodes matching the given kind.
Sourcepub fn filter_source_ref_eq(self, source_ref: impl Into<String>) -> Self
pub fn filter_source_ref_eq(self, source_ref: impl Into<String>) -> Self
Filter results to nodes matching the given source_ref.
Sourcepub fn filter_content_ref_not_null(self) -> Self
pub fn filter_content_ref_not_null(self) -> Self
Filter results to nodes where content_ref is not NULL.
Sourcepub fn filter_content_ref_eq(self, content_ref: impl Into<String>) -> Self
pub fn filter_content_ref_eq(self, content_ref: impl Into<String>) -> Self
Filter results to nodes matching the given content_ref URI.
Sourcepub fn filter_json_text_eq(
self,
path: impl Into<String>,
value: impl Into<String>,
) -> Self
pub fn filter_json_text_eq( self, path: impl Into<String>, value: impl Into<String>, ) -> Self
Filter results where a JSON property at path equals the given text value.
Sourcepub fn filter_json_bool_eq(self, path: impl Into<String>, value: bool) -> Self
pub fn filter_json_bool_eq(self, path: impl Into<String>, value: bool) -> Self
Filter results where a JSON property at path equals the given boolean value.
Sourcepub fn filter_json_integer_gt(self, path: impl Into<String>, value: i64) -> Self
pub fn filter_json_integer_gt(self, path: impl Into<String>, value: i64) -> Self
Filter results where a JSON integer at path is greater than value.
Sourcepub fn filter_json_integer_gte(
self,
path: impl Into<String>,
value: i64,
) -> Self
pub fn filter_json_integer_gte( self, path: impl Into<String>, value: i64, ) -> Self
Filter results where a JSON integer at path is greater than or equal to value.
Sourcepub fn filter_json_integer_lt(self, path: impl Into<String>, value: i64) -> Self
pub fn filter_json_integer_lt(self, path: impl Into<String>, value: i64) -> Self
Filter results where a JSON integer at path is less than value.
Sourcepub fn filter_json_integer_lte(
self,
path: impl Into<String>,
value: i64,
) -> Self
pub fn filter_json_integer_lte( self, path: impl Into<String>, value: i64, ) -> Self
Filter results where a JSON integer at path is less than or equal to value.
Sourcepub fn filter_json_timestamp_gt(
self,
path: impl Into<String>,
value: i64,
) -> Self
pub fn filter_json_timestamp_gt( self, path: impl Into<String>, value: i64, ) -> Self
Filter results where a JSON timestamp at path is after value.
Sourcepub fn filter_json_timestamp_gte(
self,
path: impl Into<String>,
value: i64,
) -> Self
pub fn filter_json_timestamp_gte( self, path: impl Into<String>, value: i64, ) -> Self
Filter results where a JSON timestamp at path is at or after value.
Sourcepub fn filter_json_timestamp_lt(
self,
path: impl Into<String>,
value: i64,
) -> Self
pub fn filter_json_timestamp_lt( self, path: impl Into<String>, value: i64, ) -> Self
Filter results where a JSON timestamp at path is before value.
Sourcepub fn filter_json_timestamp_lte(
self,
path: impl Into<String>,
value: i64,
) -> Self
pub fn filter_json_timestamp_lte( self, path: impl Into<String>, value: i64, ) -> Self
Filter results where a JSON timestamp at path is at or before value.
Sourcepub fn filter_json_fused_text_eq(
self,
path: impl Into<String>,
value: impl Into<String>,
) -> Result<Self, BuilderValidationError>
pub fn filter_json_fused_text_eq( self, path: impl Into<String>, value: impl Into<String>, ) -> Result<Self, BuilderValidationError>
Filter results where a JSON text property at path equals
value, with fusion semantics.
§Errors
Returns BuilderValidationError if the root kind has no
registered property-FTS schema or the schema does not cover
path.
Sourcepub fn filter_json_fused_text_in(
self,
path: impl Into<String>,
values: Vec<String>,
) -> Result<Self, BuilderValidationError>
pub fn filter_json_fused_text_in( self, path: impl Into<String>, values: Vec<String>, ) -> Result<Self, BuilderValidationError>
Filter results where a JSON text property at path is one of
values, with fusion semantics.
§Errors
Sourcepub fn filter_json_text_in(
self,
path: impl Into<String>,
values: Vec<String>,
) -> Self
pub fn filter_json_text_in( self, path: impl Into<String>, values: Vec<String>, ) -> Self
Filter results where a JSON text property at path is one of
values. Non-fused; no FTS schema required.
Sourcepub fn filter_json_fused_timestamp_gt(
self,
path: impl Into<String>,
value: i64,
) -> Result<Self, BuilderValidationError>
pub fn filter_json_fused_timestamp_gt( self, path: impl Into<String>, value: i64, ) -> Result<Self, BuilderValidationError>
Filter results where a JSON timestamp at path is strictly
greater than value, with fusion semantics.
§Errors
Sourcepub fn filter_json_fused_timestamp_gte(
self,
path: impl Into<String>,
value: i64,
) -> Result<Self, BuilderValidationError>
pub fn filter_json_fused_timestamp_gte( self, path: impl Into<String>, value: i64, ) -> Result<Self, BuilderValidationError>
Filter results where a JSON timestamp at path is at or after
value, with fusion semantics.
§Errors
Sourcepub fn filter_json_fused_timestamp_lt(
self,
path: impl Into<String>,
value: i64,
) -> Result<Self, BuilderValidationError>
pub fn filter_json_fused_timestamp_lt( self, path: impl Into<String>, value: i64, ) -> Result<Self, BuilderValidationError>
Filter results where a JSON timestamp at path is strictly
before value, with fusion semantics.
§Errors
Sourcepub fn filter_json_fused_timestamp_lte(
self,
path: impl Into<String>,
value: i64,
) -> Result<Self, BuilderValidationError>
pub fn filter_json_fused_timestamp_lte( self, path: impl Into<String>, value: i64, ) -> Result<Self, BuilderValidationError>
Filter results where a JSON timestamp at path is at or before
value, with fusion semantics.
§Errors
Sourcepub fn filter_json_fused_bool_eq(
self,
path: impl Into<String>,
value: bool,
) -> Result<Self, BuilderValidationError>
pub fn filter_json_fused_bool_eq( self, path: impl Into<String>, value: bool, ) -> Result<Self, BuilderValidationError>
Filter results where a JSON boolean property at path equals
value, with fusion semantics. See
Self::filter_json_fused_text_eq for the contract.
§Errors
Sourcepub fn compile_plan(&self) -> Result<CompiledVectorSearch, CompileError>
pub fn compile_plan(&self) -> Result<CompiledVectorSearch, CompileError>
Compile the builder into a CompiledVectorSearch without executing
it. Useful for tests and introspection.
§Errors
Returns CompileError if filter partitioning fails.
Sourcepub fn execute(&self) -> Result<SearchRows, EngineError>
pub fn execute(&self) -> Result<SearchRows, EngineError>
Execute the vector search and return matching hits.
§Errors
Returns EngineError if compilation or execution fails. A
capability miss (sqlite-vec unavailable) is NOT an error: it
returns an empty SearchRows with was_degraded = true.