Solr 范围查询速度慢(Magento CE 中的 SolrBridge)

Solr Range Query Slow (SolrBridge in Magento CE)

我正在通过 SolrBridge 扩展使用 Solr 开发 Magento 社区版网站。当只有几千个 SKU 时,系统速度很快,但在导入约 10 万个产品后,搜索速度明显变慢。页面加载从不到一秒增加到两秒多,New Relic 监控确定这次是在等待 Solr 的响应。

注意到搜索建议仍然非常快,我决定调查自动完成搜索和完整搜索列表之间的区别。在尝试改变搜索的不同方面以使其与自动完成搜索保持一致后。

当我禁用查询的范围字段部分时,系统速度大大加快,如下所示:

facet.range=GBP_0_price_decimal&f.GBP_0_price_decimal.facet.range.start=0&f.GBP_0_price_decimal.facet.range.end=1000000&f.GBP_0_price_decimal.facet.range.gap=100&f.GBP_0_price_decimal.facet.mincount=1

包含此代码后,搜索时间大约为 1.7-1.8 秒。没有它,搜索只需要几毫秒。

我认为这是该字段的模式定义。它似乎已编入索引:

<dynamicField name="*_decimal" type="float" indexed="true" stored="true" />

知道减速因素是什么吗? Solr 是 运行 单核。它与 Magento 和数据库位于同一个物理盒子上。盒子的规格相对较高 - 64GB 内存和双 Xeon E5620s。

感谢您的帮助。如果您需要更多信息来提供帮助,请告诉我。

刻面间隙 (100) 可能太小了。 您正在为范围(facet.end 除以 facet.gap)生成(可能)10000 个分面桶,这有点重。

我可以增加间隙大小或使用较小的范围末端。