Streaming Expressions in Apache Solr
The Structure Query Language (SQL) engine is built on top of Solr’s Streaming API or streaming expressions. Streaming expression provides a simple and powerful stream processing language for Solr cloud and Its support for parallel relational algebra and real-time map-reduce.
Distributed Joins: Streaming expressions are added to distributed joins.
- Inner Join
- Left Outer Join
- Hash Join
- Outer Hash Join
innerJoin(search(collection1, q=*:*, fl="fieldP, fieldQ, fieldR", ...),
search(collection2, q=*:*, fl="fieldP, fieldM, fieldN", ...),
Rolling streaming expression: It is a group of the common field value tuple.
Facet streaming expression: It pushes down the computation using json.
There are many available functions.
- Continuous push streaming
- Continuous pull streaming
- Request/Response streaming
- MapReduce is shuffling aggregation
- Pushdown faceted aggregation
- Parallel relational algebra (distributed joins, intersections, unions, complements)
- Publish/subscribe to messaging
- Distributed graph traversal