减少solr中的查询时间

时间:2014-03-22 06:24:13

标签: search solr indexing

我正在使用solr进行搜索。我的索引大小逐小时变大。所以查询时间也越来越长。很多人建议进行分片。这是最后一个选择。我现在该怎么办?

1 个答案:

答案 0 :(得分:0)

  • 在急速进行分片之前,你的搜索速度肯定会更快,你可以查看你的模式,看看你是否可以在那里进行任何优化。

  • 使用停用词:停用词是非常常见的词,可能会不必要地扩大索引大小。尽量在需要时使用停用词。

  • 如果可以,请避免使用“扩展”选项进行同义词。这些也极大地扩展了指数。

  • 避免使用大范围的N-Grams。如果您的尺寸较大,这将产生太多组合。

  • 只需要过滤器时使用查询过滤器(fq参数)。筛选查询比普通查询更快,并且它们不应用任何评分。它只是一个过滤器。因此,如果您需要将AND查询放在一起,请将过滤器查询放在fq参数中。

  • 不时运行“优化索引”以删除索引中已删除的文档,并减少索引大小。

  • 使用debugQuery = on并查看是否可以发现任何需要很长时间的事情。

  • 如果文档大小

  • ,请尝试使用documentCache
  • 如果您有重复的过滤查询,请尝试使用filterCache

  • 如果您重复查询,请尝试使用queryResultCache。

如果上述情况没有导致任何性能提升,那么您可以考虑分片/分布式搜索