Skip to main content
Version: Next

AlgorithmQueryBuilder

age-schema-client v0.5.0


age-schema-client / AlgorithmQueryBuilder

Class: AlgorithmQueryBuilder<T>

Defined in: src/query/algorithms.ts:319

Graph algorithm query builder

Specialized query builder for graph algorithms

Extends

Type Parameters

Type Parameter
T extends SchemaDefinition

Constructors

Constructor

new AlgorithmQueryBuilder<T>(
schema,
queryExecutor,
graphName): AlgorithmQueryBuilder<T>;

Defined in: src/query/algorithms.ts:327

Create a new algorithm query builder

Parameters

ParameterTypeDefault valueDescription
schemaTundefinedSchema definition
queryExecutorQueryExecutorundefinedQuery executor
graphNamestring'default'Graph name

Returns

AlgorithmQueryBuilder<T>

Overrides

AnalyticsQueryBuilder.constructor

Methods

match()

Implementation of the match method for algorithms

Call Signature

match<L>(label, alias): IMatchClause<T, L>;

Defined in: src/query/algorithms.ts:338

Add MATCH clause for a vertex

Type Parameters
Type Parameter
L extends string | number | symbol
Parameters
ParameterType
labelL
aliasstring
Returns

IMatchClause<T, L>

Overrides

AnalyticsQueryBuilder.match

Call Signature

match<E>(
sourceAlias,
edgeLabel,
targetAlias): IEdgeMatchClause<T>;

Defined in: src/query/algorithms.ts:343

Add MATCH clause for an edge between two previously matched vertices

Type Parameters
Type Parameter
E extends string | number | symbol
Parameters
ParameterType
sourceAliasstring
edgeLabelE
targetAliasstring
Returns

IEdgeMatchClause<T>

Overrides

AnalyticsQueryBuilder.match

Call Signature

match<E>(
sourceAlias,
edgeLabel,
targetAlias,
edgeAlias): IEdgeMatchClause<T>;

Defined in: src/query/algorithms.ts:352

Add MATCH clause for an edge between two previously matched vertices with an edge alias

Type Parameters
Type Parameter
E extends string | number | symbol
Parameters
ParameterType
sourceAliasstring
edgeLabelE
targetAliasstring
edgeAliasstring
Returns

IEdgeMatchClause<T>

Overrides

AnalyticsQueryBuilder.match


shortestPath()

shortestPath(
startAlias,
endAlias,
resultAlias,
options): this;

Defined in: src/query/algorithms.ts:405

Find the shortest path between two vertices

Parameters

ParameterTypeDefault valueDescription
startAliasstringundefinedStart vertex alias
endAliasstringundefinedEnd vertex alias
resultAliasstring'path'Result path alias
optionsPathFindingOptions{}Path finding options

Returns

this

This algorithm query builder


allShortestPaths()

allShortestPaths(
startAlias,
endAlias,
resultAlias,
options): this;

Defined in: src/query/algorithms.ts:435

Find all shortest paths between two vertices

Parameters

ParameterTypeDefault valueDescription
startAliasstringundefinedStart vertex alias
endAliasstringundefinedEnd vertex alias
resultAliasstring'paths'Result paths alias
optionsPathFindingOptions{}Path finding options

Returns

this

This algorithm query builder


dijkstra()

dijkstra(
startAlias,
endAlias,
costProperty,
resultAlias,
options): this;

Defined in: src/query/algorithms.ts:466

Find the shortest weighted path between two vertices using Dijkstra's algorithm

Parameters

ParameterTypeDefault valueDescription
startAliasstringundefinedStart vertex alias
endAliasstringundefinedEnd vertex alias
costPropertystringundefinedRelationship property to use as cost
resultAliasstring'path'Result path alias
optionsPathFindingOptions{}Path finding options

Returns

this

This algorithm query builder


betweennessCentrality()

betweennessCentrality(
vertexAlias,
resultAlias,
options): this;

Defined in: src/query/algorithms.ts:491

Calculate betweenness centrality for vertices

Parameters

ParameterTypeDefault valueDescription
vertexAliasstringundefinedVertex alias
resultAliasstring'centrality'Result alias
optionsCentralityOptions{}Centrality options

Returns

this

This algorithm query builder


pageRank()

pageRank(
vertexAlias,
resultAlias,
dampingFactor,
iterations): this;

Defined in: src/query/algorithms.ts:511

Calculate PageRank for vertices

Parameters

ParameterTypeDefault valueDescription
vertexAliasstringundefinedVertex alias
resultAliasstring'pagerank'Result alias
dampingFactornumber0.85Damping factor (default: 0.85)
iterationsnumber20Number of iterations (default: 20)

Returns

this

This algorithm query builder


louvain()

louvain(
vertexAlias,
resultAlias,
options): this;

Defined in: src/query/algorithms.ts:531

Detect communities using the Louvain method

Parameters

ParameterTypeDefault valueDescription
vertexAliasstringundefinedVertex alias
resultAliasstring'community'Result alias
optionsCommunityDetectionOptions{}Community detection options

Returns

this

This algorithm query builder


extractNodes()

extractNodes(pathAlias, resultAlias): this;

Defined in: src/query/algorithms.ts:549

Extract nodes from a path

Parameters

ParameterTypeDefault valueDescription
pathAliasstring'path'Path alias
resultAliasstring'nodes'Result alias

Returns

this

This algorithm query builder


extractRelationships()

extractRelationships(pathAlias, resultAlias): this;

Defined in: src/query/algorithms.ts:564

Extract relationships from a path

Parameters

ParameterTypeDefault valueDescription
pathAliasstring'path'Path alias
resultAliasstring'relationships'Result alias

Returns

this

This algorithm query builder


pathLength()

pathLength(pathAlias, resultAlias): this;

Defined in: src/query/algorithms.ts:579

Calculate the length of a path

Parameters

ParameterTypeDefault valueDescription
pathAliasstring'path'Path alias
resultAliasstring'length'Result alias

Returns

this

This algorithm query builder


groupBy()

groupBy(...fields): this;

Defined in: src/query/analytics.ts:398

Group results by specified fields

Parameters

ParameterTypeDescription
...fieldsstring[]Fields to group by

Returns

this

This analytics query builder

Throws

Error if no RETURN clause is specified before groupBy

Inherited from

AnalyticsQueryBuilder.groupBy


windowFunction()

windowFunction(
functionType,
resultAlias,
options): this;

Defined in: src/query/analytics.ts:419

Add a window function to the query

Parameters

ParameterTypeDescription
functionTypestringWindow function type
resultAliasstringAlias for the window function result
optionsWindowFunctionOptionsWindow function options

Returns

this

This analytics query builder

Inherited from

AnalyticsQueryBuilder.windowFunction


rowNumber()

rowNumber(resultAlias, options): this;

Defined in: src/query/analytics.ts:485

Add ROW_NUMBER window function

Parameters

ParameterTypeDescription
resultAliasstringAlias for the result
optionsWindowFunctionOptionsWindow function options

Returns

this

This analytics query builder

Inherited from

AnalyticsQueryBuilder.rowNumber


rank()

rank(resultAlias, options): this;

Defined in: src/query/analytics.ts:496

Add RANK window function

Parameters

ParameterTypeDescription
resultAliasstringAlias for the result
optionsWindowFunctionOptionsWindow function options

Returns

this

This analytics query builder

Inherited from

AnalyticsQueryBuilder.rank


denseRank()

denseRank(resultAlias, options): this;

Defined in: src/query/analytics.ts:507

Add DENSE_RANK window function

Parameters

ParameterTypeDescription
resultAliasstringAlias for the result
optionsWindowFunctionOptionsWindow function options

Returns

this

This analytics query builder

Inherited from

AnalyticsQueryBuilder.denseRank


where()

where(condition, params): this;

Defined in: src/query/builder.ts:234

Add WHERE clause

Parameters

ParameterTypeDescription
conditionstringCondition expression
paramsRecord<string, any>Parameters

Returns

this

This query builder

Inherited from

AnalyticsQueryBuilder.where


return()

return(...expressions): this;

Defined in: src/query/builder.ts:278

Add RETURN clause

Parameters

ParameterTypeDescription
...expressionsstring[]Return expressions

Returns

this

This query builder

Inherited from

AnalyticsQueryBuilder.return


orderBy()

orderBy(expression, direction): this;

Defined in: src/query/builder.ts:290

Add ORDER BY clause

Parameters

ParameterTypeDefault valueDescription
expressionstringundefinedExpression to order by
directionOrderDirectionOrderDirection.ASCOrder direction

Returns

this

This query builder

Inherited from

AnalyticsQueryBuilder.orderBy


limit()

limit(count): this;

Defined in: src/query/builder.ts:311

Add LIMIT clause

Parameters

ParameterTypeDescription
countnumberLimit count

Returns

this

This query builder

Inherited from

AnalyticsQueryBuilder.limit


skip()

skip(count): this;

Defined in: src/query/builder.ts:322

Add SKIP clause

Parameters

ParameterTypeDescription
countnumberSkip count

Returns

this

This query builder

Inherited from

AnalyticsQueryBuilder.skip


with()

with(...expressions): this;

Defined in: src/query/builder.ts:333

Add WITH clause

Parameters

ParameterTypeDescription
...expressionsstring[]With expressions

Returns

this

This query builder

Inherited from

AnalyticsQueryBuilder.with


unwind()

unwind(expression, alias): this;

Defined in: src/query/builder.ts:345

Add UNWIND clause

Parameters

ParameterTypeDescription
expressionstringExpression to unwind
aliasstringAlias for unwound items

Returns

this

This query builder

Inherited from

AnalyticsQueryBuilder.unwind


withParam()

withParam(name, value): this;

Defined in: src/query/builder.ts:357

Add a parameter to the query

Parameters

ParameterTypeDescription
namestringParameter name
valueanyParameter value

Returns

this

This query builder

Inherited from

AnalyticsQueryBuilder.withParam


setParam()

setParam(key, value): Promise<AlgorithmQueryBuilder<T>>;

Defined in: src/query/builder.ts:373

Set a parameter in the age_params temporary table

This method inserts a parameter into the age_params temporary table using an INSERT ON CONFLICT UPDATE statement. The parameter can then be referenced in a Cypher query using the get_age_param() function.

Parameters

ParameterTypeDescription
keystringParameter key
valueanyParameter value (will be converted to JSON)

Returns

Promise<AlgorithmQueryBuilder<T>>

This query builder

Inherited from

AnalyticsQueryBuilder.setParam


withParamFunction()

withParamFunction(functionName, alias): this;

Defined in: src/query/builder.ts:398

Add a WITH clause that calls a function to get parameters

This is specifically for Apache AGE compatibility, as it requires parameters to be passed via a function call in a WITH clause.

Parameters

ParameterTypeDescription
functionNamestringFully qualified function name (e.g., 'schema.get_params')
aliasstringAlias for the function result (e.g., 'params')

Returns

this

This query builder

Inherited from

AnalyticsQueryBuilder.withParamFunction


withAgeParam()

withAgeParam(key, alias): this;

Defined in: src/query/builder.ts:413

Add a WITH clause that calls the get_age_param function

This method adds a WITH clause that calls the get_age_param function to retrieve a parameter from the age_params temporary table.

Parameters

ParameterTypeDescription
keystringParameter key to retrieve
aliasstringAlias for the parameter in the query

Returns

this

This query builder

Inherited from

AnalyticsQueryBuilder.withAgeParam


withAllAgeParams()

withAllAgeParams(alias): this;

Defined in: src/query/builder.ts:428

Add a WITH clause that calls the get_all_age_params function

This method adds a WITH clause that calls the get_all_age_params function to retrieve all parameters from the age_params temporary table.

Parameters

ParameterTypeDefault valueDescription
aliasstring'params'Alias for the parameters object in the query

Returns

this

This query builder

Inherited from

AnalyticsQueryBuilder.withAllAgeParams


execute()

execute<R>(options): QueryBuilderResult<R>;

Defined in: src/query/builder.ts:441

Execute the query

Type Parameters

Type ParameterDefault type
Rany

Parameters

ParameterTypeDescription
optionsQueryExecutionOptionsQuery execution options

Returns

QueryBuilderResult<R>

Query result

Throws

Error if query validation fails

Inherited from

AnalyticsQueryBuilder.execute


reset()

reset(): this;

Defined in: src/query/builder.ts:584

Reset the query builder state

Returns

this

This query builder

Inherited from

AnalyticsQueryBuilder.reset


toCypher()

toCypher(): string;

Defined in: src/query/builder.ts:595

Get the Cypher query string

Returns

string

Cypher query string

Inherited from

AnalyticsQueryBuilder.toCypher


getParameters()

getParameters(): Record<string, any>;

Defined in: src/query/builder.ts:607

Get the query parameters

Returns

Record<string, any>

Query parameters

Inherited from

AnalyticsQueryBuilder.getParameters


validateSchema()

validateSchema(): string[];

Defined in: src/query/builder.ts:624

Validate the query against the schema

Returns

string[]

Validation errors, if any

Inherited from

AnalyticsQueryBuilder.validateSchema


validateQuery()

validateQuery(): string[];

Defined in: src/query/builder.ts:707

Validate the query for variable references and other semantic issues

Returns

string[]

Validation errors with helpful suggestions

Inherited from

AnalyticsQueryBuilder.validateQuery