入门指南
语言
流式表达式和数学表达式是在 SolrCloud 中运行的函数语言。这些语言由设计为组合以形成编程逻辑的函数组成。
流式表达式是返回元组流的函数。流式表达式函数可以组合以形成转换管道。管道从流源开始,例如 search
,它启动元组流。一个或多个流修饰器,例如 select
,包装流源并转换元组流。
数学表达式是对原始类型和内存中的数组和矩阵进行操作并返回它们的函数。数学表达式的核心用例是执行数学运算和可视化。
流式表达式和数学表达式可以组合起来,在 SolrCloud 集合中搜索、采样、聚合、转换、分析和可视化数据。
执行
Solr 的 /stream
请求处理程序执行流式表达式和数学表达式。此处理程序编译表达式,运行表达式逻辑并返回 JSON 结果。
管理 UI 流面板
运行流式表达式和数学表达式的最简单方法是通过 Solr 管理 UI 中的流屏幕。
下面的屏幕截图显示了一个示例 search
流式表达式
下面的屏幕截图显示了一个示例 add
数学表达式
Curl 示例
可以使用 /stream
处理程序的 HTTP 接口发送流式表达式请求并检索响应。
当结果需要假脱机到磁盘或太大而无法放入 Solr 管理流面板时,Curl 是运行流式表达式的有用工具。下面是一个 curl 命令到 /stream
处理程序的示例。
curl --data-urlencode 'expr=search(enron_emails,
q="from:1800flowers*",
fl="from, to",
sort="from asc")' https://127.0.0.1:8983/solr/enron_emails/stream
下面显示了来自此请求的流处理程序的 JSON 响应
{"result-set":{"docs":[
{"from":"[email protected]","to":"[email protected]"},
{"from":"[email protected]","to":"[email protected]"},
{"from":"[email protected]","to":"[email protected]"},
{"from":"[email protected]","to":"[email protected]"},
{"from":"[email protected]","to":"[email protected]"},
{"from":"[email protected]","to":"[email protected]"},
{"from":"[email protected]","to":"[email protected]"},
{"from":"[email protected]","to":"[email protected]"},
{"from":"[email protected]","to":"[email protected]"},
{"from":"[email protected]","to":"[email protected]"},
{"from":"[email protected]","to":"[email protected]"},
{"from":"[email protected]","to":"[email protected]"},
{"from":"[email protected]","to":"[email protected]"},
{"from":"[email protected]","to":"[email protected]"},
{"EOF":true,"RESPONSE_TIME":33}]}
}
可视化
本指南中的可视化是使用带有 Zeppelin-Solr 解释器的 Apache Zeppelin 执行的。
Zeppelin-Solr 解释器
适用于 Solr 的 Apache Zeppelin 解释器允许在 Zeppelin 中执行流式表达式和数学表达式,并可视化结果。有关安装和配置 Zeppelin-Solr 的说明可以在该项目的 GitHub 存储库中找到:https://github.com/lucidworks/zeppelin-solr
安装后,可以配置 Solr 解释器以连接到您的 Solr 实例。下面的屏幕截图显示了用于配置 Zeppelin-Solr 的面板。
配置 solr.baseUrl
和 solr.collection
以指向将发送流式表达式和数学表达式以执行的位置。solr.collection
只是执行集合,不需要保存数据,尽管它可以保存数据。流式表达式可以选择查询附加到与执行集合相同的 SolrCloud 的任何集合。