Search
Query, search, and filter your graph data with powerful engines.
Querying and Search
Three built-in engines for exploring your graph.
QueryEngine
Graph traversal and structural queries.
import { useInferaGraph } from '@inferagraph/react';
function PatriarchExplorer() {
const { queryEngine } = useInferaGraph();
const neighbors = queryEngine.getNeighbors('abraham', 2);
const path = queryEngine.findPath('abraham', 'canaan');
const sub = queryEngine.getSubgraph(['abraham', 'isaac', 'jacob']);
return (
<div>
<h2>Abraham's Neighbors</h2>
{neighbors.map(n => <li key={n.id}>{n.id}</li>)}
</div>
);
}SearchEngine
Full-text search with relevance scoring.
import { useInferaGraph } from '@inferagraph/react';
import { useState } from 'react';
function BibleSearch() {
const { searchEngine } = useInferaGraph();
const [query, setQuery] = useState('');
const results = searchEngine.search(query);
return (
<div>
<input value={query} onChange={e => setQuery(e.target.value)} />
{results.map(r => <li key={r.nodeId}>{r.nodeId} ({r.score})</li>)}
</div>
);
}FilterEngine
Predicate-based node filtering.
import { useInferaGraph } from '@inferagraph/react';
function PatriarchFilter() {
const { filterEngine } = useInferaGraph();
// Find all people from the Patriarchs era
const patriarchs = filterEngine.filter(
(attrs) => attrs.type === 'person' && attrs.era === 'Patriarchs'
);
return (
<ul>
{patriarchs.map(p => <li key={p.id}>{p.id}</li>)}
</ul>
);
}