问题1:我正在尝试在我的solrconfig.xml中优化我的搜索者,并且有两个不同的搜索者可以加热。我的理解是,firstSearcher仅在服务器启动时触发。每当您需要新的搜索者时,都会创建一个newSearcher。在我看来,我们希望在每个中指定相同的fq和facets。什么时候你想要他们不同?
问题2:有什么方法可以确定添加fq或facet对搜索者启动时间的影响?我知道我可以通过fqs / facets和没有fqs / facets来测量搜索者的启动时间,但这并不是非常精细。假设单个fq / facet有成本/收益,我希望能够衡量这一点,以便我可以决定哪些东西值得变暖,哪些不值得。
问题3:如何有效调整filterCache的大小?我有一组特定的fq,我知道它们可能被击中,大约有500个,所以看起来我会把它设置为500.但是,Solr似乎使用filterCache来查询必须要分割的结果。由于90%的查询都是分面的,看起来我们必须使用预期的查询数作为缓存大小的基础。听起来不错吗?
答案 0 :(得分:2)
您的理解是正确的。然而,一个新的搜索者可以从最后一个自动装配,所以这是一个区别。另一个原因是,由于newSearcher每次提交都会发生,如果你经常提交,你可能想要做的工作要少于你开始冷的时候。
我不知道一个好方法。查询以串行方式运行,至少使用firstSearcher,显示在访问日志中,因此您可以逐字查看它们需要多长时间。但是,给定的查询集是否会产生“足够温暖”的东西,但这几乎是一种反复试验。
要记住的关于FilterCache大小的最重要的事情是单个条目(索引中的文档数)/ 8个字节。因此,如果您将大小设置为500,并且索引中有100M文档,则只需要保留6.25G的堆即可。通常建议您尽可能减小堆的大小,以便为磁盘缓存留出更多内存,但这是一个例外。至于将缓解压力放在缓存上的方面查询,我有同样的问题,我不知道任何解决方案。请参阅https://issues.apache.org/jira/browse/SOLR-8171。