2012-04-09 107 views
3

对于大型项目,我们拥有一些大规模的SOLR索引,并且其消耗的空间超过50 GB。SOLR索引尺寸缩减

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

另一个相关的问题是(3)是否有一种方法可以在SOLR内部交易性能指数大小,如果是,它将如何工作?

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

+0

如果您可以发布'schema.xml'和一些示例文档,它将会有所帮助。 – nikhil500 2012-04-10 01:57:00

回答

8

有几件事情你可以通过交易指数来衡量指数的大小。例如,整数(int)字段使用的空间少于trie整数(tint),但使用int时范围查询会更慢。

要大幅度降低您的指数,您几乎肯定需要更仔细地查看您正在使用的字段。

  • 您是否使用了大量存储的字段?如果是这样,请尝试从索引中删除存储的字段,并在从Solr获得结果后,查询数据库以获取必要的数据。
  • 添加omitNorms =“true”以文本不需要长度正常化
  • 添加omitPositions =“true”以文本时不要求短语匹配
  • 特殊领域,如n元语法领域,可能需要长达领域大量的空间
  • 你是否从文本字段中删除了停用词?
+0

谢谢 - 这些“数量级”差异中的任何一个?从它的外观来看,它们似乎只能以小百分比改变事物......我们需要大幅度减少(而且我们没有像大型文本索引那样做任何事情......大部分领域都很小......但我们只是有很多)。 – jayunit100 2012-04-10 04:01:17

+1

省略规范和职位可以节省很多空间,尤其是索引的大小。看看这篇文章:http://css.dzone.com/news/solr-index-size-analysis – 2012-04-10 04:15:39

+0

+1我还要补充一点,术语向量使用大量的空间,如果你有很多段,然后进行一些合并可以帮助段之间共享数据 – jpountz 2012-04-10 07:55:38