public interface JanusGraphMultiVertexQuery<Q extends JanusGraphMultiVertexQuery<Q>> extends BaseVertexQuery<Q>
JanusGraphVertexQuery
but executed against a set of vertices simultaneously.
In other words, JanusGraphMultiVertexQuery
allows identical JanusGraphVertexQuery
executed against a non-trivial set
of vertices to be executed in one batch which can significantly reduce the query latency.
The query specification methods are identical to JanusGraphVertexQuery
. The result set method return Maps from the specified
set of anchor vertices to their respective individual result sets.
Call Transaction.multiQuery(java.util.Collection)
to construct a multi query in the enclosing transaction.
Note, that the limit(int)
constraint applies to each individual result set.
JanusGraphVertexQuery
Modifier and Type | Method and Description |
---|---|
JanusGraphMultiVertexQuery |
addAllVertices(Collection<? extends org.apache.tinkerpop.gremlin.structure.Vertex> vertices)
Adds the given collection of vertices to the set of vertices against which to execute this query.
|
JanusGraphMultiVertexQuery |
addVertex(org.apache.tinkerpop.gremlin.structure.Vertex vertex)
Adds the given vertex to the set of vertices against which to execute this query.
|
Q |
adjacent(org.apache.tinkerpop.gremlin.structure.Vertex vertex)
Restricts this query to only those edges that point to the given vertex.
|
Q |
direction(org.apache.tinkerpop.gremlin.structure.Direction d)
Query only for relations in the given direction.
|
Map<JanusGraphVertex,Iterable<JanusGraphEdge>> |
edges()
Returns an iterable over all incident edges that match this query for each vertex
|
Q |
has(String key)
Query for edges or properties that have defined property with the given key
|
Q |
has(String key,
JanusGraphPredicate predicate,
Object value) |
Q |
has(String type,
Object value)
Query only for edges or properties that have an incident property or unidirected edge matching the given value.
|
Q |
hasNot(String key)
Query for edges or properties that DO NOT have a defined property with the given key
|
Q |
hasNot(String key,
Object value)
Identical to
BaseVertexQuery.has(String, Object) but negates the condition, i.e. |
<T extends Comparable<?>> |
interval(String key,
T start,
T end)
Query for those edges or properties that have a property for the given key
whose values lies in the interval by [start,end).
|
Q |
keys(String... keys)
Query for only those properties having one of the given property keys.
|
Q |
labels(String... labels)
Query for only those edges matching one of the given edge labels.
|
Q |
limit(int limit)
Sets the retrieval limit for this query.
|
Q |
orderBy(String key,
org.apache.tinkerpop.gremlin.process.traversal.Order order)
Orders the relation results of this query according
to their property for the given key in the given order (increasing/decreasing).
|
void |
preFetch()
Makes a call to properties to pre-fetch the properties into the vertex cache
|
Map<JanusGraphVertex,Iterable<JanusGraphVertexProperty>> |
properties()
Returns an iterable over all incident properties that match this query for each vertex
|
Map<JanusGraphVertex,Iterable<JanusGraphRelation>> |
relations()
Returns an iterable over all incident relations that match this query for each vertex
|
Q |
types(RelationType... type)
Query for only those relations matching one of the given relation types.
|
Q |
types(String... type)
Query for only those relations matching one of the given relation types.
|
Map<JanusGraphVertex,VertexList> |
vertexIds()
Retrieves all vertices connected to each of the query's central vertices by edges
matching the conditions defined in this query.
|
Map<JanusGraphVertex,Iterable<JanusGraphVertex>> |
vertices()
Retrieves all vertices connected to each of the query's base vertices by edges
matching the conditions defined in this query.
|
JanusGraphMultiVertexQuery addVertex(org.apache.tinkerpop.gremlin.structure.Vertex vertex)
vertex
- JanusGraphMultiVertexQuery addAllVertices(Collection<? extends org.apache.tinkerpop.gremlin.structure.Vertex> vertices)
vertices
- Q adjacent(org.apache.tinkerpop.gremlin.structure.Vertex vertex)
BaseVertexQuery
adjacent
in interface BaseVertexQuery<Q extends JanusGraphMultiVertexQuery<Q>>
Q types(String... type)
BaseVertexQuery
types
in interface BaseVertexQuery<Q extends JanusGraphMultiVertexQuery<Q>>
type
- relation types to query forQ types(RelationType... type)
BaseVertexQuery
types
in interface BaseVertexQuery<Q extends JanusGraphMultiVertexQuery<Q>>
type
- relation types to query forQ labels(String... labels)
BaseVertexQuery
labels
in interface BaseVertexQuery<Q extends JanusGraphMultiVertexQuery<Q>>
labels
- edge labels to query forQ keys(String... keys)
BaseVertexQuery
keys
in interface BaseVertexQuery<Q extends JanusGraphMultiVertexQuery<Q>>
keys
- property keys to query forQ direction(org.apache.tinkerpop.gremlin.structure.Direction d)
BaseVertexQuery
direction
in interface BaseVertexQuery<Q extends JanusGraphMultiVertexQuery<Q>>
d
- Direction to query forQ has(String type, Object value)
BaseVertexQuery
If type is a property key, then the query is restricted to edges or properties having an incident property matching
this key-value pair.
If type is an edge label, then it is expected that this label is unidirected (EdgeLabel.isUnidirected()
and the query is restricted to edges or properties having an incident unidirectional edge pointing to the value which is
expected to be a JanusGraphVertex
.
has
in interface BaseVertexQuery<Q extends JanusGraphMultiVertexQuery<Q>>
type
- JanusGraphType namevalue
- Value for the property of the given key to match, or vertex to point unidirectional edge toQ has(String key)
BaseVertexQuery
has
in interface BaseVertexQuery<Q extends JanusGraphMultiVertexQuery<Q>>
Q hasNot(String key)
BaseVertexQuery
hasNot
in interface BaseVertexQuery<Q extends JanusGraphMultiVertexQuery<Q>>
Q hasNot(String key, Object value)
BaseVertexQuery
BaseVertexQuery.has(String, Object)
but negates the condition, i.e. matches those edges or properties
that DO NOT satisfy this property condition.hasNot
in interface BaseVertexQuery<Q extends JanusGraphMultiVertexQuery<Q>>
Q has(String key, JanusGraphPredicate predicate, Object value)
has
in interface BaseVertexQuery<Q extends JanusGraphMultiVertexQuery<Q>>
<T extends Comparable<?>> Q interval(String key, T start, T end)
BaseVertexQuery
interval
in interface BaseVertexQuery<Q extends JanusGraphMultiVertexQuery<Q>>
key
- property keystart
- value defining the start of the interval (inclusive)end
- value defining the end of the interval (exclusive)Q limit(int limit)
BaseVertexQuery
When setting a limit, executing this query will only retrieve the specified number of relations. Note, that this also applies to counts.
limit
in interface BaseVertexQuery<Q extends JanusGraphMultiVertexQuery<Q>>
limit
- maximum number of relations to retrieve for this queryQ orderBy(String key, org.apache.tinkerpop.gremlin.process.traversal.Order order)
BaseVertexQuery
Note, that the ordering always applies to the incident relations (edges/properties) and NOT to the adjacent vertices even if only vertices are being returned.
orderBy
in interface BaseVertexQuery<Q extends JanusGraphMultiVertexQuery<Q>>
key
- The key of the properties on which to orderorder
- the ordering directionMap<JanusGraphVertex,Iterable<JanusGraphEdge>> edges()
Map<JanusGraphVertex,Iterable<JanusGraphVertexProperty>> properties()
void preFetch()
Map<JanusGraphVertex,Iterable<JanusGraphRelation>> relations()
Map<JanusGraphVertex,Iterable<JanusGraphVertex>> vertices()
Map<JanusGraphVertex,VertexList> vertexIds()
The query engine will determine the most efficient way to retrieve the vertices that match this query.
Copyright © 2012–2024. All rights reserved.