Class GraphQuery
- java.lang.Object
-
- com.lucidworks.search.dsl.DslBase
-
- com.lucidworks.search.dsl.request.DslCloneable
-
- com.lucidworks.search.dsl.request.query.Query
-
- com.lucidworks.search.dsl.request.query.GraphQuery
-
public class GraphQuery extends Query
A query to traverse graph-like relationships in indexed data. Use of this query assumes your data is setup to represent a directed graph. Each document represents a node in the graph and its connecting edges: the "from" field holds an identifier for the node itself, with outgoing edges represented by the node IDs held in the "to" field. The starting points or seeds for the traversal are identified by the result set of the provided subquery. The result set of this query contains all documents/nodes reachable via graph traversal from the provided seeds.
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
TYPE
-
Constructor Summary
Constructors Constructor Description GraphQuery(java.lang.String from, java.lang.String to, Query query)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description GraphQuery
clone()
java.util.List<Query>
getChildQueries()
Returns all the children of the query in question.java.lang.String
getFrom()
Query
getQuery()
java.lang.String
getTo()
boolean
isEmptyQuery()
boolean
removeChildQuery(Query toRemove)
Remove 'toRemove', if 'toRemove' is currently a child of this Query object.boolean
replaceChildQuery(Query toReplace, Query replacement)
Swap 'replacement' in as a replacement, if 'toReplace' is currently a child of this Query object.-
Methods inherited from class com.lucidworks.search.dsl.request.DslCloneable
clone, deepClone
-
-
-
-
Field Detail
-
TYPE
public static final java.lang.String TYPE
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
GraphQuery
public GraphQuery(java.lang.String from, java.lang.String to, Query query)
-
-
Method Detail
-
getTo
public java.lang.String getTo()
- Returns:
- the field name that holds each document's outgoing edges. The values in this field should match values held by the "from" field in other documents.
-
getFrom
public java.lang.String getFrom()
- Returns:
- the field name that holds an identifier for each document/node in the graph.
-
getQuery
public Query getQuery()
- Returns:
- a query whose result set documents are used as seeds for the graph traversal.
-
getChildQueries
public java.util.List<Query> getChildQueries()
Description copied from class:Query
Returns all the children of the query in question. The returnedList
is provided as a copy - changes made to it do not impact the originating Query object in any way.- Specified by:
getChildQueries
in classQuery
-
replaceChildQuery
public boolean replaceChildQuery(Query toReplace, Query replacement)
Description copied from class:Query
Swap 'replacement' in as a replacement, if 'toReplace' is currently a child of this Query object. Because a tree of Query objects might conceivably have repeated clauses, this method is implemented to test 'toReplace' using reference-equality instead of value-equality.- Specified by:
replaceChildQuery
in classQuery
- Returns:
- true if a replacement was made, false otherwise.
-
removeChildQuery
public boolean removeChildQuery(Query toRemove)
Description copied from class:Query
Remove 'toRemove', if 'toRemove' is currently a child of this Query object. Because a tree of Query objects might conceivably have repeated clauses, this method is implemented to test 'toRemove' using reference-equality instead of value-equality.- Specified by:
removeChildQuery
in classQuery
- Returns:
- true if a removal was made, false otherwise.
-
isEmptyQuery
public boolean isEmptyQuery()
- Specified by:
isEmptyQuery
in classQuery
- Returns:
- true if this query is now essentially "empty" (doesn't affect query logic at all) and can now be removed from the query tree. This can happen, for example, if all child queries were removed and the query logic depends on having at least one child query.
-
clone
public GraphQuery clone()
-
-