用于复杂查询性能优化的Solr分片

用于复杂查询性能优化的Solr分片,solr,sharding,lucene,solrcloud,Solr,Sharding,Lucene,Solrcloud,我有一个相对较小的索引,用于高负载站点,大约有1百万个文档。我对它运行相对复杂的函数查询,性能是不可接受的。因此,我对是否将当前的主+从拓扑移动到至少有3个碎片和n个副本的SolrCloud犹豫不决,这样所有函数查询都将分布在碎片上,并且响应时间应至少小3倍,并且在合并结果集时占用的空间较小(是真的吗?)。 所以我的问题是,是否值得分片(并增加复杂性)来解决性能问题,而不是索引大小问题(分片索引的最常见原因) 1)您是否尝试过通过debugQuery=true进行评测?2) 您是否研究了缓存使用

我有一个相对较小的索引,用于高负载站点,大约有1百万个文档。我对它运行相对复杂的函数查询,性能是不可接受的。因此,我对是否将当前的主+从拓扑移动到至少有3个碎片和n个副本的SolrCloud犹豫不决,这样所有函数查询都将分布在碎片上,并且响应时间应至少小3倍,并且在合并结果集时占用的空间较小(是真的吗?)。
所以我的问题是,是否值得分片(并增加复杂性)来解决性能问题,而不是索引大小问题(分片索引的最常见原因)

1)您是否尝试过通过debugQuery=true进行评测?2) 您是否研究了缓存使用情况并调整了缓存参数以避免逐出?如果性能是个问题,您可以使用负载平衡器将搜索查询分发到多个solr节点