Skip to main content

Crate issundb

Crate issundb 

Source
Expand description

IssunDB is an embedded graph database in Rust.

Visit the project repository for documentation and examples

This is the main crate of IssunDB, and exposes the Graph type, Cypher query execution, vector search, full-text search, and hybrid retrieval APIs. Application code, bindings, and tools depend on this crate only; the internal crates (issundb-core, issundb-vector, issundb-text, issundb-retrieval, and issundb-cypher) are not part of the stable API.

§Entry Points

§Working with Query Results

Query parameters and Record values use serde_json::Value. The serde_json crate is re-exported as issundb::serde_json so callers do not need to track a separate, version-compatible dependency.

Re-exports§

pub use serde_json;

Structs§

Bm25Scorer
BM25 (Okapi BM25) relevance scorer with default parameters k1 = 1.2, b = 0.75.
DirectedNeighborEntry
A neighbor entry with a direction flag, returned by crate::Graph::all_neighbors.
EdgeRecord
Stored in the edges LMDB sub-database as msgpack bytes.
Graph
The graph database handle. It is cheap to clone, since all state is behind Arc.
GroupedDegreeSpec
Describes the pattern Graph::grouped_edge_counts counts, typed edges grouped by one endpoint. With group_is_dst, edges are grouped by their destination and the source is the counted endpoint (in-degree per destination); otherwise edges are grouped by their source and the destination is counted (out-degree per source). group_label and counted_label optionally constrain each endpoint (None is unconstrained). counted_nonnull_prop counts an edge only when the counted endpoint’s property is non-null (the semantics of count(v.prop) over the expansion); None counts every qualifying edge (the semantics of count(*) or count(v), where a bound node variable is never null).
Hit
A single result from vector search.
HybridRetrieveOptions
Options for retrieve_hybrid.
IdGroupCodes
Dense group codes of one property, indexed by node id rather than by a request’s position. codes[node_id] is the node’s group code under exact value identity, ID_GROUP_ABSENT where no such node exists, and reps holds one representative value per code. Built once per write generation by crate::Graph::node_prop_group_codes_by_id and shared, so a grouped aggregation over a bulk row set reads one array cell per row instead of interning one value per row per query.
NeighborCountSpec
Describes the pattern Graph::typed_neighbor_counts counts, the typed neighbors of each source across one hop. incoming follows incoming edges instead of outgoing ones. A neighbor qualifies when it carries every label in neighbor_labels (an empty slice is unconstrained) and, when neighbor_allow is present, is a member of that set; it adds to the counted total only when neighbor_nonnull_prop is absent or non-null on it (the semantics of count(v.prop) over the expansion, against count(*)).
NeighborEntry
The result of a single adjacency lookup entry returned by crate::Graph::out_neighbors and crate::Graph::in_neighbors.
NodeRecord
Stored in the nodes LMDB sub-database as msgpack bytes.
PathCountSpec
Describes the pattern Graph::count_linear_paths counts, an open directed path of one or two hops, (v0)-[t1]->(v1) or (v0)-[t1]->(v1)-[t2]->(v2), with an optional relationship type per hop and an optional label per node variable. None means unconstrained.
Procedure
A table-backed procedure. rows each contain inputs.len() + outputs.len() cells: the first segment matches the declared inputs, the second the outputs.
ProcedureRegistry
A runtime registry of procedures available to CALL.
QueryResult
The tabular result of a Cypher query execution.
ReadTxn
A read-only transaction on the graph.
Record
An individual row in the query result table.
RetrieveOptions
Options for retrieve_with.
Subgraph
A subgraph extracted by a retrieval call.
TextHit
A single ranked full-text search result.
TextSearchOptions
Options for full-text search.
TfIdfScorer
TF-IDF relevance scorer. Lighter than BM25; no length normalization.
TriangleCountSpec
Describes the pattern Graph::count_triangle_cycles counts, the directed cycle (a)-[t1]->(b)-[t2]->(c)-[t3]->(a) with an optional relationship type per hop and an optional label per node variable. None means unconstrained.
VectorIndexOptions
Construction options for VectorIndex.
VectorSearchOptions
Options for vector_search_with.
WeightedPath
A path with an associated total weight, returned by weighted path algorithms.
WriteTxn
A read-write transaction on the graph.

Enums§

BooleanMode
Boolean candidate-set filtering for multi-term queries.
CypherError
Structured query engine errors representing all parsing, optimization, planning, and runtime execution faults.
CypherType
The declared Cypher type of a procedure argument or output field.
DegreeDirection
The direction of edges to count for degree centrality.
Error
FusionStrategy
Strategy for fusing vector and text relevance scores.
Language
Supported languages for Full-text Search indexing and stemming.
LinkPredictionMetric
Which score Graph::link_prediction_score computes for a pair of nodes.
PropCmp
A comparison operator for [PropColumns::cmp_mask], the typed in-column predicate evaluation behind Graph::nodes_prop_cmp_mask.
PropValue
A typed property value used in index lookups and range queries.
RetrievalError
Structured errors representing all hybrid retrieval faults.
TextError
VectorError
Structured errors representing all vector search and indexing faults.
VectorMetric
Distance metric for the vector index.
VectorQuantization
Quantization format for in-memory vector storage.

Constants§

ID_GROUP_ABSENT
The slot value in IdGroupCodes::codes for a node id that does not exist (an allocation hole, or an id past the array).

Traits§

GraphQueryExt
Extension trait to execute Cypher queries on the Graph handle.
Scorer
Relevance scoring strategy for full-text search.
TextGraphExt
Full-text search operations for Graph.
TextIndexExt
Text index lifecycle operations for Graph.
VectorGraphExt
Vector search operations for Graph.

Functions§

retrieve
Wraps a vector search to k seeds and a hops-hop undirected BFS expansion into one subgraph materialization.
retrieve_hybrid
Merges vector search seeds with full-text search seeds, fuses their scores using opts.fusion, then expands via undirected BFS.
retrieve_with
Full retrieve with configurable options.

Type Aliases§

EdgeId
LabelId
NodeId
TypeId