我正在使用 solrj API 在 solr 5.3 中运行 json facet 查询,每个查询也有许多子方面(可以是 4-5 个字段深度)。总索引文档大于 800 万。我从 NamedList 对象中的响应中提取方面结果。
但我想获得分面的分页结果。现在,我一口气得到了整个结果,但将来它可能会“内存不足”。
{
"ComputerName_s":{
"allBuckets":true,
"type":"terms",
"field":"ComputerName_s",
"limit":-1,
"facet":{
"ProcessName_s":{
"type":"terms",
"field":"ProcessName_s",
"limit":-1,
"facet":{
"PID_i":{
"type":"terms",
"field":"PID_i",
"limit":-1,
"facet":{
"timestamp":{
"type":"terms",
"field":"timestamp",
"limit":-1,
"facet":{
"max(Memory_l)":"max(Memory_l)",
"avg(Memory_l)":"avg(Memory_l)",
"min(ElapsedTime_l)":"min(ElapsedTime_l)"
}
}
}
}
}
}
}
}
}
例如,上面是 json.facet 查询的示例。那么,如何设置每个字段的偏移量和限制并获得分页结果。
另外,我能否以 CSV 格式而不是像 NamedList 结构这样的复杂树获得分面结果,因为我正在尝试模拟 sql 的“group by”子句,并且将这种结构逐行转换为非常耗时结构体。