5

对于一个大型项目,我们有一些海量的 SOLR 索引,它占用了 50 GB 以上的空间。

我们已经考虑了几种减小与更改索引中的内容相关的大小的方法,但我很好奇我们是否可以对 SOLR 索引进行任何更改,这会将其大小减小 2 个数量级或更多,这与(1)我们可以运行的维护命令或(2)可能未正确设置的简单配置参数直接相关。

另一个相关的问题是(3)有没有办法在 SOLR 内部用索引大小来换取性能,如果是这样,它将如何工作?

对此的任何想法将不胜感激......谢谢!

4

1 回答 1

12

您可以做几件事来用性能换取指数大小。例如,整数 (int) 字段使用的空间比 trie 整数 (tint) 少,但使用 int 时范围查询会更慢。

要大幅减少索引,您几乎肯定需要更仔细地查看您正在使用的字段。

  • 您是否使用了很多存储字段?如果是这样,请尝试从索引中删除存储的字段,并在从 Solr 获得结果后查询数据库以获取必要的数据。
  • 将 omitNorms="true" 添加到不需要长度规范化的文本字段
  • 将 omitPositions="true" 添加到不需要词组匹配的文本字段
  • 特殊字段,如 NGrams,会占用大量空间
  • 您是否要从文本字段中删除停用词?
于 2012-04-09T23:42:09.180 回答