6

问题 1:我正在尝试优化我的 solrconfig.xml 中的搜索器,并且有两个不同的搜索器会变热。我的理解是 firstSearcher 只在服务器启动时触发。每当您需要新的搜索器时,都会创建一个 newSearcher。在我看来,我们希望在每个中指定相同的 fq 和方面。什么情况下您希望它们有所不同?

问题 2:有什么方法可以确定添加 fq 或构面对搜索器启动时间的影响?我知道我可以蛮力测量具有 fqs/facets 的搜索器的启动时间与没有的搜索器的启动时间,但这不是很精细。假设对于单个 fq/方面存在成本/收益,我希望能够对其进行衡量,以便我可以决定哪些事情值得加热,哪些不值得。

问题 3:如何有效调整 filterCache 的大小?我有一组特定的 fq,我知道它们可能会被击中,其中大约 500 个,所以似乎我会将其设置为 500。但是,Solr 似乎将 filterCache 用于必须分面的查询结果。由于我 90% 的查询都是分面的,因此我们似乎必须使用预期的查询数量作为缓存大小的基础。听起来对吗?

4

1 回答 1

2
  1. 你的理解是正确的。然而,一个 newSearcher 可以从最后一个自动预热,所以这是一个区别。另一个是由于 newSearcher 每次提交都会发生,如果你经常提交,你可能希望做的工作比你刚开始时少得多。

  2. 我不知道有什么好方法。查询是串行运行的,至少使用 firstSearcher 会显示在访问日志中,因此您可以从字面上看到它们需要多长时间。不过,给定的查询集是否会导致“足够温暖”的结果几乎是反复试验。

  3. 关于 FilterCache 大小要记住的最重要的事情是单个条目大约是(索引中的文档数)/8 字节。因此,如果您将大小设置为 500,并且您的索引中有 100M 文档,那么您将需要 6.25G 的堆来保存它。通常建议您将堆的大小尽可能小,以便为磁盘缓存留出更多内存,但这是一个例外。至于对缓存施加驱逐压力的方面查询,我有同样的问题,我不知道有任何解决方案。请参阅https://issues.apache.org/jira/browse/SOLR-8171

于 2016-05-11T23:15:42.017 回答