我正在使用solr进行搜索。我的索引大小逐小时变大。所以查询时间也越来越长。很多人建议进行分片。这是最后一个选择。我现在该怎么办?
答案 0 :(得分:0)
在急速进行分片之前,你的搜索速度肯定会更快,你可以查看你的模式,看看你是否可以在那里进行任何优化。
使用停用词:停用词是非常常见的词,可能会不必要地扩大索引大小。尽量在需要时使用停用词。
如果可以,请避免使用“扩展”选项进行同义词。这些也极大地扩展了指数。
避免使用大范围的N-Grams。如果您的尺寸较大,这将产生太多组合。
只需要过滤器时使用查询过滤器(fq参数)。筛选查询比普通查询更快,并且它们不应用任何评分。它只是一个过滤器。因此,如果您需要将AND查询放在一起,请将过滤器查询放在fq参数中。
不时运行“优化索引”以删除索引中已删除的文档,并减少索引大小。
使用debugQuery = on并查看是否可以发现任何需要很长时间的事情。
如果文档大小
如果您有重复的过滤查询,请尝试使用filterCache
如果您重复查询,请尝试使用queryResultCache。
如果上述情况没有导致任何性能提升,那么您可以考虑分片/分布式搜索