我们有大量的 solr 分片,并且正在尝试设置多级聚合器。我的理解是,一个聚合器与其关联的核心不应超过 200 个。我们目前的计划是我们的第一级聚合器每个都在 100 个内核上工作。然后,我们将有另一个级别的聚合器将这些聚合在一起。到目前为止,这对我们不起作用,当我们查询第二级时,我们会收到 500 个内部服务器错误。深入研究这一点,我们发现我们的一级聚合器是给 NPE。我们还发现查询的一些翻译正在进行中。例如,我们为 2 级聚合器提供如下内容:
http://l2agghostname:8080/solr/core-00/select?q=*
它将以下内容发送到级别 1:
http://l1agghostname:8080/solr/core-00/select?ids=a6_370573660942_76697809790_0,a7_370573660942_76697809790_4&wt=xml&q=*
这表明它正在接收要返回的 ID,但我不确定该“ids”参数应该做什么。如果我将相同的查询直接插入到 1 级聚合器中,我会得到相同的错误,但是如果我只给它一个 doc id,如下所示:
http://l1agghostname:8080/solr/core-00/select?ids=a6_370573660942_76697809790_0&wt=xml&q=*
然后它会返回信息!
这看起来很奇怪,但我也不确定我是否应该花时间尝试了解这个 ids 参数是如何工作的。我在追随红鲱鱼吗?
PS:http://l1agghostname:8080/solr/core-00/select?q=*
确实按预期返回结果。