入门

语言

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

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

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

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

执行

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

管理 UI 流面板

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

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

search

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

add

Curl 示例

/stream 处理程序的 HTTP 接口可用于发送流表达式请求并检索响应。

当结果需要被转储到磁盘或太大而无法容纳在 Solr 管理流面板中时,Curl 是运行流表达式的有用工具。下面是一个向/stream 处理程序发送 Curl 命令的示例。

curl --data-urlencode 'expr=search(enron_emails,
                                   q="from:1800flowers*",
                                   fl="from, to",
                                   sort="from asc")' http://localhost: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}]}
}

可视化

本指南中的可视化操作使用 Apache Zeppelin 和 Zeppelin-Solr 解释器完成。

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函数进行格式化以供可视化。此函数支持绘制向量矩阵概率分布二维聚类结果

本指南中包含许多示例,展示了如何可视化流表达式和数学表达式。