[ https://issues.apache.org/jira/browse/SOLR-7938?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14995421#comment-14995421 ]
Joel Bernstein edited comment on SOLR-7938 at 11/7/15 10:05 PM: ---------------------------------------------------------------- Just reviewing the implementation for this ticket. Rather then having the MergeStream take N streams we could have a MultiMergeStream that under the covers would loop over the streams and create compounded MergeStreams. For example merging streams a,b and c could be expressed like this inside of the MultiMergeStream: {code} stream = new MergeStream(new MergeStream(a, c, comp), b, comp); {code} There's something kind of nice about this compounding of MergeStreams. The Expression would like this: {code} multiMerge( search(collection1, q="id:(0 4)", fl="id,a_s,a_i,a_f", sort="a_f asc, a_s asc"), search(collection1, q="id:(1)", fl="id,a_s,a_i,a_f", sort="a_f asc, a_s asc"), search(collection1, q="id:(2)", fl="id,a_s,a_i,a_f", sort="a_f asc, a_s asc"), on="a_f asc" ) {code} was (Author: joel.bernstein): Just reviewing the implementation for this ticket. Rather then having the MergeStream take a N streams we could have a MultiMergeStream that under the covers would loop over the streams and create compounded MergeStreams. For example merging streams a,b and c could be expressed like this inside of the MultiMergeStream: {code} stream = new MergeStream(new MergeStream(a, c, comp), b, comp); {code} There's something kind of nice about this compounding of MergeStreams. The Expression would like this: {code} multiMerge( search(collection1, q="id:(0 4)", fl="id,a_s,a_i,a_f", sort="a_f asc, a_s asc"), search(collection1, q="id:(1)", fl="id,a_s,a_i,a_f", sort="a_f asc, a_s asc"), search(collection1, q="id:(2)", fl="id,a_s,a_i,a_f", sort="a_f asc, a_s asc"), on="a_f asc" ) {code} > MergeStream to support N streams > -------------------------------- > > Key: SOLR-7938 > URL: https://issues.apache.org/jira/browse/SOLR-7938 > Project: Solr > Issue Type: Improvement > Components: SolrJ > Affects Versions: Trunk > Reporter: Dennis Gove > Priority: Minor > Labels: streaming > Attachments: SOLR-7938.patch > > > Enhances MergeStream to support merging N streams. This was previously > limited to merging just two streams but with this enhancement it can now > accept any number of streams to merge. > Based on the comparator, if more than one stream could provide the next value > then the selected value will follow the order of the streams as they appear > in the expression or were added to the MergeStream object. > {code} > merge( > search(collection1, q="id:(0 4)", fl="id,a_s,a_i,a_f", sort="a_f asc, a_s > asc"), > search(collection1, q="id:(1)", fl="id,a_s,a_i,a_f", sort="a_f asc, a_s > asc"), > search(collection1, q="id:(2)", fl="id,a_s,a_i,a_f", sort="a_f asc, a_s > asc"), > on="a_f asc" > ) > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org