我正在运行Solr 6.2的实例。我正在探索的一个用例是返回按字段分组的记录,包括求和列(facet)并按这些列排序。我意识到Solr并不打算用作关系数据库,但这可能吗?
使用JSON API,我将以下数据有效负载发送到我的Solr实例的query
端点:
{
query: "*:*",
filter: ["status:1", "date:[2016-10-11T00:00:00Z-7DAYS/DAY TO 2016-10-11T00:00:00Z]"],
limit: 10,
params: {
group: true,
group.field: name,
group.facet: true
},
facet: {
funcs: {
type: terms,
field: name,
sort: { sum_v1: desc },
limit: 10,
facet: {
sum_v1: "sum(v1)",
sum_v2: "sum(v2)",
sum_v3: "sum(v3)"
}
}
}
这会在响应JSON的groups
键和facets
键中一次返回10条记录。但是,已排序的构面块与分组的记录不匹配。如何将与相关的小组计算在一起?
我能想到的唯一解决方法是首先查询分组记录,然后使用该查询中的id
进行另一个查询以获取构面计数。然而,缺点是我失去了按任何方面计数排序或过滤的能力。