如何减小生成的Lucene / Solr索引的大小?

时间:2015-08-14 11:55:23

标签: solr lucene

我正在研究搜索系统的原型。

我在oracle中有一些表有一些字段。我生成的数据看起来很真实。大约300.000行。 例如:

PaymentNo|Datetime        |AmountEuro|PayersName            |PayersPhoneNo|ReceiversLegal|ReceiversAcc
2314     |2015-07-21T15:14|15.63     |Clinton, Barack Anjela|1.918.0060657|Nasa          |5555569778664190000
230338   |2015-08-01T15:14|34.87     |Merkel, George Donald |1.653.0060658|PepsiCo       |7777828443194736000

(实际上有更多列)

oracle中的表大小62 MB(Toad报告)

我将表导入Solr 5.2.1(在Windows中)。 带数据的索引大小为88 MB(在磁盘上)。 没有数据的索引大小为67 MB。

我的问题是:我可以减小索引的大小吗?

这些选项已经过测试: 减少索引表列的数量。在Solr中关闭数据存储。从索引中排除部分行。

我需要额外的机会来减少索引的大小。 你知道任何?

1 个答案:

答案 0 :(得分:3)

您可以使用提供的所有见解here。我想分享一些额外的观点。

Solr会复制数据,以便对索引数据进行快速搜索。 solr的一个重要内容是,它使用不可变数据结构来存储所有数据。

  • 术语词典:索引术语词典及其频率和发布列表的偏移量。
  • 术语向量:Solr存储索引的每个文档的术语向量。这基本上是每个文档的单独倒排索引。这通常是存储量很大。
  • 存储文档:按顺序存储每个文档及其字段。
  • 文档值:将所有文档的字段存储在一起。这类似于数据的柱状存储。

如果您没有使用solr的solr高亮显示功能,则可以禁用文档级别术语向量存储。

此外,Solr对不同类型的数据使用许多不同的压缩技术。它使用位打包/ vint压缩来发布列表和数值。 LZ4压缩用于存储的字段和术语向量。它使用FST数据结构存储术语词典。 FST是Trie数据结构的一种特殊实现。