如何在Solr Streaming中使用基于分区的排名

时间:2020-06-10 09:58:13

标签: solr rank

如何在Solr Streaming中使用“按分区排名”。

表A(城市,街道名称),需要进行如下查询,排名为2, city1-streetname1,streetname2 city2-streetname1,streetname2 city3-streetname1,streetname2

是否有支持上述功能的功能?

谢谢。

1 个答案:

答案 0 :(得分:1)

您可以使用reducetop函数来实现所需的功能。这些函数在search返回的流上起作用,并允许您创建与group在常规查询中相同的功能。

reduce

reduce函数包装内部流并按公共字段对元组进行分组。

每个元组组通过可插入的reduce操作作为一个块进行操作。 Solr提供的分组操作实现了分布式分组功能。分组操作还可以作为示例化简操作,在构建自定义化简操作时可以参考。

reduce函数依赖于基础流的排序顺序。因此,基础流的排序顺序必须与按字段分组。

top

top函数包装流表达式并重新排序元组。 top函数仅按新的排序顺序发出前N个元组。顶部函数对基础流进行重新排序,因此排序条件不必与基础流匹配。

search流源不接受常规查询接受的所有参数-但具有其自己的允许参数子集:

search参数

collection :(强制性)要搜索的集合。

q :(必需)要对Solr索引执行的查询。

fl :(必填)要返回的字段列表。

sort :(强制性)排序标准。

zkHost:仅当在与本地流处理程序不同的zkHost中找到要搜索的集合时,才需要定义。

qt:指定要使用的查询类型或请求处理程序。将此设置为/ export以处理大型结果集。默认值为/select

rows :(必须使用/select处理程序)rows参数指定要返回的行数。由于/select处理程序始终返回所有行,因此仅/export处理程序才需要此参数(默认设置)。

partitionKeys:用逗号分隔的键列表,用于对搜索结果进行分区。与并行功能一起用于跨工作节点并行操作。有关详细信息,请参见并行功能。