【问题标题】:How to reduce the size of a generated Lucene/Solr index?如何减小生成的 Lucene/Solr 索引的大小?
【发布时间】:2015-11-07 16:12:10
【问题描述】:

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

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

PaymentNo|日期时间|AmountEuro|PayersName |PayersPhoneNo|ReceiversLegal|ReceiversAcc 2314 |2015-07-21T15:14|15.63 |克林顿,巴拉克·安吉拉|1.918.0060657|美国国家航空航天局|5555569778664190000 230338 |2015-08-01T15:14|34.87 |默克尔,乔治·唐纳德|1.653.0060658|百事可乐|7777828443194736000

(其实还有更多的列)

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

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

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

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

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

【问题讨论】:

标签: solr lucene


【解决方案1】:

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

Solr 会复制数据以提供对索引数据的快速搜索。 solr 的一件重要事情是,它使用不可变的数据结构来存储所有数据。

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

如果您不使用 solr 的 solr 突出显示功能,您可以禁用文档级别的术语向量存储。

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

【讨论】:

    猜你喜欢
    • 2021-10-09
    • 1970-01-01
    • 2010-09-09
    • 2012-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-08
    • 2018-03-03
    相关资源
    最近更新 更多