入门指南

语言

流式表达式数学表达式是在 SolrCloud 中运行的函数语言。这些语言由设计为组合以形成编程逻辑的函数组成。

流式表达式是返回元组流的函数。流式表达式函数可以组合以形成转换管道。管道从流源开始,例如 search,它启动元组流。一个或多个流修饰器,例如 select,包装流源并转换元组流。

数学表达式是对原始类型和内存中的数组和矩阵进行操作并返回它们的函数。数学表达式的核心用例是执行数学运算和可视化。

流式表达式和数学表达式可以组合起来,在 SolrCloud 集合中搜索、采样、聚合、转换、分析可视化数据。

执行

Solr 的 /stream 请求处理程序执行流式表达式和数学表达式。此处理程序编译表达式,运行表达式逻辑并返回 JSON 结果。

管理 UI 流面板

运行流式表达式和数学表达式的最简单方法是通过 Solr 管理 UI 中的流屏幕

下面的屏幕截图显示了一个示例 search 流式表达式

search

下面的屏幕截图显示了一个示例 add 数学表达式

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 的面板。

zepconf

配置 solr.baseUrlsolr.collection 以指向将发送流式表达式和数学表达式以执行的位置。solr.collection 只是执行集合,不需要保存数据,尽管它可以保存数据。流式表达式可以选择查询附加到与执行集合相同的 SolrCloud 的任何集合。

zplot

流式表达式结果集可以由 Zeppelin-Solr 自动可视化。

数学表达式的结果需要使用 zplot 函数进行格式化以便可视化。此函数支持绘制向量矩阵概率分布2D聚类结果

指南中有很多示例展示如何可视化流式表达式和数学表达式。