lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dennis Gove (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (SOLR-8888) Add shortestPath Streaming Expression
Date Tue, 29 Mar 2016 14:30:25 GMT

    [ https://issues.apache.org/jira/browse/SOLR-8888?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15216089#comment-15216089
] 

Dennis Gove commented on SOLR-8888:
-----------------------------------

I guess my thinking is that an edge exists when two nodes (1 and 2) have the same value for
some field or fields (A and B). That is, if node1.colA = node2.colB then there exists an edge
between node1 and node2. With this, the `edge` parameter defines what constitutes the existence
of an edge between two nodes.

> 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}
> Th 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* columns colA to colB iteratively. Each level in the traversal is implemented as a *parallel
partitioned* nested loop join. 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: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org


Mime
View raw message