我正在使用Solr,并且想在“组”字段中进行介绍。
由于“组”是由用户创建的,因此“组”的潜在值可能很多。
Solr能够处理这样的用例吗?还是Solr真的不适用于具有大量值的方面字段吗?
我了解可以设置facet.limit来限制为facet字段返回的值的数量。这对我有帮助吗?
假设如果我将facet.limit设置为50,则搜索中有100,000个匹配的“组”匹配值。这会加快查询速度,还是查询速度仍然很慢,因为Solr仍需要处理和分类所有分面值并返回前50个?
关于如何为大量构面值调整Solr的任何技巧?
谢谢。
最佳答案
从1.4开始,solr可以很好地处理具有大量值的构面,因为默认情况下它使用简单的构面计数。 (facet.method默认为“ fc”)。
在1.4之前,solr使用基于过滤器的分面方法(枚举),对于具有少量值的属性进行分面,绝对更快。此方法每个方面值需要一个过滤器。
关于facet.limit,可以将其视为浏览facet空间(与facet.offset结合使用)的一种方式,就像使用行/偏移量浏览结果空间一样。因此,将值设置为10〜50是明智的。
与行/偏移量一样,由于Solr的性质,可以预期,当偏移量变大时,facet.limit / facet.offset的性能会降低,但是如果您在合理的范围内,它应该是非常好的。
默认情况下,solr首先输出更频繁的构面。
总结一下:
使用Solr 1.4
确保facet.method为'fc'(好吧,这仍然是默认设置)。
使用facet.limit / facet.offset浏览您的构面空间。
关于search - Solr在大量构面值上的缩放程度如何?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2902680/