lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dennis Gove (JIRA)" <>
Subject [jira] [Created] (SOLR-7377) SOLR Streaming Expressions
Date Fri, 10 Apr 2015 19:51:12 GMT
Dennis Gove created SOLR-7377:

             Summary: SOLR Streaming Expressions
                 Key: SOLR-7377
             Project: Solr
          Issue Type: Improvement
          Components: clients - java
            Reporter: Dennis Gove
            Priority: Minor
             Fix For: Trunk

It would be beneficial to add an expression-based interface to Streaming API described in
SOLR-6526. Right now that API requires streaming requests to come in from clients as serialized
bytecode of the streaming classes. The suggestion here is to support string expressions which
describe the streaming operations the client wishes to perform. 

search(collection1, q=*:*, fl="id,fieldA,fieldB", sort="fieldA asc")

With this syntax in mind, one can now express arbitrarily complex stream queries with a single

// merge two distinct searches together on common fields
  search(collection1, q="id:(0 3 4)", fl="id,a_s,a_i,a_f", sort="a_f asc, a_s asc"),
  search(collection2, q="id:(1 2)", fl="id,a_s,a_i,a_f", sort="a_f asc, a_s asc"),
  on="a_f asc, a_s asc")

// find top 20 unique records of a search
    search(collection1, q=*:*, fl="id,a_s,a_i,a_f", sort="a_f desc"),
    over="a_f desc"),
  over="a_f desc")

The syntax would support
1. Configurable expression names (eg. via solrconfig.xml one can map "unique" to a class implementing
a Unique stream class) This allows users to build their own streams and use as they wish.
2. Named parameters (of both simple and expression types)
3. Unnamed, type-matched parameters (to support requiring N streams as arguments to another
4. Positional parameters

The main goal here is to make streaming as accessible as possible and define a syntax for
running complex queries across large distributed systems.

This message was sent by Atlassian JIRA

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message