改善慢速Solr查询性能

问题描述:

我们在Windows上使用Solr并具有多个集合。集合具有多个存储和索引字段,包含appx 200k文档。用例用于电子商务网站搜索。索引的大小是appx。 200 MB改善慢速Solr查询性能

虽然正常搜索时间少于几毫秒,但我需要查找多个类别的所有数据的查询需要大约1100毫秒到1200毫秒的时间。该查询包含appx。 400个类别与或类似的东西..

类别:(5或33或312或1192或1193或1196或.....)

我已经增加堆大小到4GB,并且被配置Solr的高速缓存值在更大的尺寸上,这将查询时间从2000毫秒减少到1100毫秒,但我们正在寻找更多的改进。

我还在Solr UI上发现了以下内容: lockFactory = [email protected]; maxCacheMB = 48.0 maxMergeSizeMB = 4.0

但是不确定会影响吗?如果是,如何改变? 你能告诉我们还能做些什么吗?让我知道你是否需要更多细节。

谢谢您的期待。

您应该添加完整的请求,以便提供一些建议。但是,从你的句子“查询包括约400个类别或类似的东西......”我知道你正在把你的巨大子句放在q参数中?这不是正确的做法。

改为使用q = *:*并将您的子句放在fq中。这样,它将被缓存,随后的查询将会快得多。如果你的缓存命中率很高,查询速度会更快。

正如你可以试试(但是对于以上第一去)第二件事可能是改造大OR子句成(或组合)范围的条款,如:

Category:[5 TO 1190] OR Category:[1192 TO 1196] 

如果你的类型是一个色调,你可以通过显着减小它的大小来将该子句转换为范围组合,它可能也可以工作

+0

感谢您的建议,我会尝试将此代入q而不是q参数。谢谢。 – Krunal

+0

嗨,这工作完美,你描述和解决我的问题。谢谢 – Krunal