[
https://issues.apache.org/jira/browse/SOLR-8888?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15216113#comment-15216113
]
Dennis Gove edited comment on SOLR-8888 at 3/29/16 2:46 PM:
------------------------------------------------------------
I wasn't suggesting that the ReduceStream be used for graph traversals, just
that a similar approach to the design be used. For example,
{code}
graph(
collection,
set=node([some q and fq defining the nodes to include in graph]),
selector=shortestPath(
from=node([some q and fq defining a starting node or nodes]),
to=node([some q and fq defining an ending node or nodes]),
edge="fieldA=fieldB"
)
)
{code}
or use a stream as the input set with
{code}
graph(
streamOfTuples,
selector=shortestPath(
from=node([some q and fq defining a starting node or nodes]),
to=node([some q and fq defining an ending node or nodes]),
edge="fieldA=fieldB"
)
)
{code}
was (Author: dpgove):
I wasn't suggesting that the ReduceStream be used for graph traversals, just
that a similar approach to the design be used. For example,
{code}
graph(
collection,
set=node([some q and fq defining the nodes to include in graph]),
selector=shortestPath(
from=node([some q and fq defining a starting node or nodes]),
to=node([some q and fq defining a starting node or nodes]),
edge="fieldA=fieldB"
)
)
{code}
or use a stream as the input set with
{code}
graph(
streamOfTuples,
selector=shortestPath(
from=node([some q and fq defining a starting node or nodes]),
to=node([some q and fq defining a starting node or nodes]),
edge="fieldA=fieldB"
)
)
{code}
> Add shortestPath Streaming Expression
> -------------------------------------
>
> Key: SOLR-8888
> URL: https://issues.apache.org/jira/browse/SOLR-8888
> Project: Solr
> Issue Type: Improvement
> Reporter: Joel Bernstein
> Attachments: SOLR-8888.patch, SOLR-8888.patch, SOLR-8888.patch,
> SOLR-8888.patch
>
>
> This ticket is to implement a distributed shortest path graph traversal as a
> Streaming Expression.
> Expression syntax:
> {code}
> shortestPath(collection,
> from="node1",
> to="node2",
> edge="colA=colB",
> threads="6",
> partitionSize="300",
> fq="limiting query",
> maxDepth="4")
> {code}
> The expression above performs a *breadth first search* to find the shortest
> path in an unweighted, directed graph. The search is performed *from* node1
> *to* node2, traversing the *edge* *joining* colA to colB iteratively. Each
> level in the traversal is implemented as a *parallel partitioned* nested loop
> join across the entire *collection*. The *threads* parameter controls the
> number of threads performing the join at each level. The *partitionSize*
> controls the of number of nodes in each join partition. *maxDepth* controls
> the number of levels to traverse. *fq* is a limiting query applied to each
> level in the traversal.
> Future implementations can add more capabilities such as weighted traversals.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]