[ https://issues.apache.org/jira/browse/SOLR-11600?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16261252#comment-16261252 ]
Aroop commented on SOLR-11600: ------------------------------ Thanks Joel. Its good to know what the roadmap is here. Personally though I am a fan of SolrStreaming Java classes approach, it does set Solr apart from other data stores. Although, I can imagine this seeming complicated to many users in java api, I guess I have been programming using it a lot recently so I might be a bit biased as I feel comfortable so far :) But then we are moving in the sql direction or rather a DSL direction completely? A compile-time correctness-verification feature, then becomes vital for programers' confidence. Maybe when there is enough time and a larger audience (greater than just me :) ), you can revisit this ;) Amrit - I am not 100% sure I understand what the next action items are, based on your note, but I guess you will keep us posted. > Add Constructor to SelectStream which takes StreamEvaluators as argument. > Current schema forces one to enter a stream expression string only > --------------------------------------------------------------------------------------------------------------------------------------------- > > Key: SOLR-11600 > URL: https://issues.apache.org/jira/browse/SOLR-11600 > Project: Solr > Issue Type: Improvement > Security Level: Public(Default Security Level. Issues are Public) > Components: SolrJ, streaming expressions > Affects Versions: 6.6.1, 7.1 > Reporter: Aroop > Priority: Trivial > Labels: easyfix > Attachments: SOLR-11600.patch > > > The use case is to be able able to supply stream evaluators over a rollup > stream in the following manner, but with instead with Strongly typed objects > and not steaming-expression strings. > {code:bash} > curl --data-urlencode 'expr=select( > id, > div(sum(cat1_i),sum(cat2_i)) as metric1, > coalesce(div(sum(cat1_i),if(eq(sum(cat2_i),0),null,sum(cat2_i))),0) as > metric2, > rollup( > search(col1, q=*:*, fl="id,cat1_i,cat2_i,cat_s", qt="/export", sort="cat_s > asc"), > over="cat_s",sum(cat1_i),sum(cat2_i) > ))' http://localhost:8983/solr/col1/stream > {code} > the current code base does not allow one to provide selectedEvaluators in a > constructor, so one cannot prepare their select stream via java code: > {code:java} > public class SelectStream extends TupleStream implements Expressible { > private static final long serialVersionUID = 1L; > private TupleStream stream; > private StreamContext streamContext; > private Map<String, String> selectedFields; > private Map<StreamEvaluator, String> selectedEvaluators; > private List<StreamOperation> operations; > public SelectStream(TupleStream stream, List<String> selectedFields) > throws IOException { > this.stream = stream; > this.selectedFields = new HashMap(); > Iterator var3 = selectedFields.iterator(); > while(var3.hasNext()) { > String selectedField = (String)var3.next(); > this.selectedFields.put(selectedField, selectedField); > } > this.operations = new ArrayList(); > this.selectedEvaluators = new HashMap(); > } > public SelectStream(TupleStream stream, Map<String, String> > selectedFields) throws IOException { > this.stream = stream; > this.selectedFields = selectedFields; > this.operations = new ArrayList(); > this.selectedEvaluators = new HashMap(); > } > {code} -- This message was sent by Atlassian JIRA (v6.4.14#64029) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org