public class QueryGraphRequest extends Object implements org.apache.avro.generic.IndexedRecord
GPUdb.queryGraph
.
Employs a topological query on a graph generated a-priori by GPUdb.createGraph
and
returns a list of adjacent edge(s) or node(s), also known as an adjacency
list, depending on what's been provided to the endpoint; providing edges
will return nodes and providing nodes will return edges.
To determine the node(s) or edge(s) adjacent to a value from a given column,
provide a list of values to queries
. This field can be
populated with column values from any table as long as the type is supported
by the given identifier. See Query Identifiers for more information.
To return the adjacency list in the response, leave adjacencyTable
empty.
IMPORTANT: It's highly recommended that you review the Graphs & Solvers concepts documentation, the Graph REST Tutorial, and/or some /match/graph examples before using this endpoint.
Modifier and Type | Class and Description |
---|---|
static class |
QueryGraphRequest.Options
A set of string constants for the
QueryGraphRequest parameter
options . |
Constructor and Description |
---|
QueryGraphRequest()
Constructs a QueryGraphRequest object with default parameters.
|
QueryGraphRequest(String graphName,
List<String> queries,
List<String> restrictions,
String adjacencyTable,
int rings,
Map<String,String> options)
Constructs a QueryGraphRequest object with the specified parameters.
|
Modifier and Type | Method and Description | ||
---|---|---|---|
boolean |
equals(Object obj) |
||
Object |
get(int index)
This method supports the Avro framework and is not intended to be called
directly by the user.
|
||
String |
getAdjacencyTable()
Name of the table to store the resulting adjacencies, in
[schema_name.]table_name format, using standard
static org.apache.avro.Schema getClassSchema()
This method supports the Avro framework and is not intended to be called
directly by the user.
| ||
String |
getGraphName()
Name of the graph resource to query.
|
||
Map<String,String> |
getOptions()
Additional parameters.
|
||
List<String> |
getQueries()
Nodes or edges to be queried specified using
List<String> getRestrictions()
Additional restrictions to apply to the nodes/edges of an existing
graph.
| ||
int |
getRings()
Sets the number of rings around the node to query for adjacency, with
'1' being the edges directly attached to the queried node.
|
||
org.apache.avro.Schema |
getSchema()
This method supports the Avro framework and is not intended to be called
directly by the user.
|
||
int |
hashCode() |
||
void |
put(int index,
Object value)
This method supports the Avro framework and is not intended to be called
directly by the user.
|
||
QueryGraphRequest |
setAdjacencyTable(String adjacencyTable)
Name of the table to store the resulting adjacencies, in
[schema_name.]table_name format, using standard
QueryGraphRequest setGraphName(String graphName)
Name of the graph resource to query.
| ||
QueryGraphRequest |
setOptions(Map<String,String> options)
Additional parameters.
|
||
QueryGraphRequest |
setQueries(List<String> queries)
Nodes or edges to be queried specified using
QueryGraphRequest setRestrictions(List<String> restrictions)
Additional restrictions to apply to the nodes/edges of an existing
graph.
| ||
QueryGraphRequest |
setRings(int rings)
Sets the number of rings around the node to query for adjacency, with
'1' being the edges directly attached to the queried node.
|
||
String |
toString() |
public QueryGraphRequest()
public QueryGraphRequest(String graphName, List<String> queries, List<String> restrictions, String adjacencyTable, int rings, Map<String,String> options)
graphName
- Name of the graph resource to query.queries
- Nodes or edges to be queried specified using query identifiers. Identifiers can be
used with existing column names, e.g., 'table.column AS
QUERY_NODE_ID', raw values, e.g., '{0, 2} AS
QUERY_NODE_ID', or expressions, e.g.,
'ST_MAKEPOINT(table.x, table.y) AS QUERY_NODE_WKTPOINT'.
Multiple values can be provided as long as the same
identifier is used for all values. If using raw values
in an identifier combination, the number of values
specified must match across the combination.restrictions
- Additional restrictions to apply to the nodes/edges
of an existing graph. Restrictions must be
specified using identifiers; identifiers are
grouped as combinations. Identifiers can be
used with existing column names, e.g.,
'table.column AS RESTRICTIONS_EDGE_ID',
expressions, e.g., 'column/2 AS
RESTRICTIONS_VALUECOMPARED', or raw values, e.g.,
'{0, 0, 0, 1} AS RESTRICTIONS_ONOFFCOMPARED'. If
using raw values in an identifier combination, the
number of values specified must match across the
combination. The default value is an empty List
.adjacencyTable
- Name of the table to store the resulting
adjacencies, in [schema_name.]table_name format,
using standard name resolution rules and
meeting table naming criteria. If left
blank, the query results are instead returned in
the response. If the 'QUERY_TARGET_NODE_LABEL' query identifier is used in
queries
, then two additional columns will
be available: 'PATH_ID' and 'RING_ID'. See Using Labels for more
information. The default value is ''.rings
- Sets the number of rings around the node to query for
adjacency, with '1' being the edges directly attached to
the queried node. Also known as number of hops. For
example, if it is set to '2', the edge(s) directly
attached to the queried node(s) will be returned; in
addition, the edge(s) attached to the node(s) attached to
the initial ring of edge(s) surrounding the queried
node(s) will be returned. If the value is set to '0', any
nodes that meet the criteria in queries
and restrictions
will be returned. This parameter is only
applicable when querying nodes. The default value is 1.options
- Additional parameters.
FORCE_UNDIRECTED
: If set to TRUE
, all inbound edges and outbound edges
relative to the node will be returned. If set to
FALSE
, only outbound edges
relative to the node will be returned. This
parameter is only applicable if the queried
graph graphName
is directed and when
querying nodes. Consult Directed Graphs for more
details.
Supported values:
The default value is FALSE
.
LIMIT
: When specified
(>0), limits the number of query results. The
size of the nodes table will be limited by the
LIMIT
value. The default
value is '0'.
OUTPUT_WKT_PATH
:
If true then concatenated wkt line segments will
be added as the WKT column of the adjacency
table.
Supported values:
The default value is FALSE
.
AND_LABELS
: If set to
TRUE
, the result of the
query has entities that satisfy all of the
target labels, instead of any.
Supported values:
The default value is FALSE
.
SERVER_ID
: Indicates
which graph server(s) to send the request to.
Default is to send to the server, amongst those
containing the corresponding graph, that has the
most computational bandwidth.
OUTPUT_CHARN_LENGTH
: When specified (>0 and
<=256), limits the number of char length on
the output tables for string based nodes. The
default length is 64. The default value is '64'.
FIND_COMMON_LABELS
: If set to true, for
many-to-many queries or multi-level traversals,
it lists the common labels between the source
and target nodes and edge labels in each path.
Otherwise (zero rings), it'll list all labels of
the node(s) queried.
Supported values:
The default value is FALSE
.
Map
.public static org.apache.avro.Schema getClassSchema()
public String getGraphName()
graphName
.public QueryGraphRequest setGraphName(String graphName)
graphName
- The new value for graphName
.this
to mimic the builder pattern.public List<String> getQueries()
queries
.public QueryGraphRequest setQueries(List<String> queries)
queries
- The new value for queries
.this
to mimic the builder pattern.public List<String> getRestrictions()
List
.restrictions
.public QueryGraphRequest setRestrictions(List<String> restrictions)
List
.restrictions
- The new value for restrictions
.this
to mimic the builder pattern.public String getAdjacencyTable()
queries
, then two additional columns will be available: 'PATH_ID' and
'RING_ID'. See Using Labels for more information. The default value
is ''.adjacencyTable
.public QueryGraphRequest setAdjacencyTable(String adjacencyTable)
queries
, then two additional columns will be available: 'PATH_ID' and
'RING_ID'. See Using Labels for more information. The default value
is ''.adjacencyTable
- The new value for adjacencyTable
.this
to mimic the builder pattern.public int getRings()
queries
and restrictions
will be returned. This
parameter is only applicable when querying nodes. The default value is
1.rings
.public QueryGraphRequest setRings(int rings)
queries
and restrictions
will be returned. This
parameter is only applicable when querying nodes. The default value is
1.rings
- The new value for rings
.this
to mimic the builder pattern.public Map<String,String> getOptions()
FORCE_UNDIRECTED
: If set to
TRUE
, all inbound edges and outbound edges
relative to the node will be returned. If set to FALSE
, only outbound edges relative to the node
will be returned. This parameter is only applicable if the
queried graph graphName
is directed and
when querying nodes. Consult Directed Graphs for more details.
Supported values:
The default value is FALSE
.
LIMIT
: When specified (>0), limits the
number of query results. The size of the nodes table will be
limited by the LIMIT
value. The default
value is '0'.
OUTPUT_WKT_PATH
: If true then
concatenated wkt line segments will be added as the WKT column
of the adjacency table.
Supported values:
The default value is FALSE
.
AND_LABELS
: If set to TRUE
, the result of the query has entities that
satisfy all of the target labels, instead of any.
Supported values:
The default value is FALSE
.
SERVER_ID
: Indicates which graph
server(s) to send the request to. Default is to send to the
server, amongst those containing the corresponding graph, that
has the most computational bandwidth.
OUTPUT_CHARN_LENGTH
: When
specified (>0 and <=256), limits the number of char length
on the output tables for string based nodes. The default length
is 64. The default value is '64'.
FIND_COMMON_LABELS
: If set to
true, for many-to-many queries or multi-level traversals, it
lists the common labels between the source and target nodes and
edge labels in each path. Otherwise (zero rings), it'll list all
labels of the node(s) queried.
Supported values:
The default value is FALSE
.
Map
.options
.public QueryGraphRequest setOptions(Map<String,String> options)
FORCE_UNDIRECTED
: If set to
TRUE
, all inbound edges and outbound edges
relative to the node will be returned. If set to FALSE
, only outbound edges relative to the node
will be returned. This parameter is only applicable if the
queried graph graphName
is directed and
when querying nodes. Consult Directed Graphs for more details.
Supported values:
The default value is FALSE
.
LIMIT
: When specified (>0), limits the
number of query results. The size of the nodes table will be
limited by the LIMIT
value. The default
value is '0'.
OUTPUT_WKT_PATH
: If true then
concatenated wkt line segments will be added as the WKT column
of the adjacency table.
Supported values:
The default value is FALSE
.
AND_LABELS
: If set to TRUE
, the result of the query has entities that
satisfy all of the target labels, instead of any.
Supported values:
The default value is FALSE
.
SERVER_ID
: Indicates which graph
server(s) to send the request to. Default is to send to the
server, amongst those containing the corresponding graph, that
has the most computational bandwidth.
OUTPUT_CHARN_LENGTH
: When
specified (>0 and <=256), limits the number of char length
on the output tables for string based nodes. The default length
is 64. The default value is '64'.
FIND_COMMON_LABELS
: If set to
true, for many-to-many queries or multi-level traversals, it
lists the common labels between the source and target nodes and
edge labels in each path. Otherwise (zero rings), it'll list all
labels of the node(s) queried.
Supported values:
The default value is FALSE
.
Map
.options
- The new value for options
.this
to mimic the builder pattern.public org.apache.avro.Schema getSchema()
getSchema
in interface org.apache.avro.generic.GenericContainer
public Object get(int index)
get
in interface org.apache.avro.generic.IndexedRecord
index
- the position of the field to getIndexOutOfBoundsException
public void put(int index, Object value)
put
in interface org.apache.avro.generic.IndexedRecord
index
- the position of the field to setvalue
- the value to setIndexOutOfBoundsException
Copyright © 2025. All rights reserved.