【问题标题】:lucene: space requirements for optimising the database?lucene:优化数据库的空间需求?
【发布时间】:2013-12-15 01:38:20
【问题描述】:

据我了解,在 Lucene 中进行数据库优化有多种选择:

  • 将整个事物优化为一个片段,占用空间至少 2 倍?
  • 优化成几个部分
  • 删除已删除的条目 — expungeDeletes(),而不更改段数?

考虑数据库没有保存在磁盘上(mfs 正在使用中)。这些操作中的每一个都对空间要求有一定的限制吗?

我注意到 expungeDeletes() 不再记录在 Lucene 4.6.0 中——它被删除了吗?我来自 Lucene 3.0.2 / 2011 年 12 月,尽管我愿意在某个时候升级到 4.6。

【问题讨论】:

    标签: optimization lucene


    【解决方案1】:

    现已移除手动优化方法,取而代之的是分层合并策略。您可以 read about this in the blog post Lucene 的作者之一。简而言之,合并会自动发生,因为相信算法(知道索引的内部状态)会比用户做得更好。

    附言我认为您需要正确命名。 Lucene 中没有“数据库”之类的东西(您可能是指索引?)

    【讨论】:

    • 这是一个好的开始,但它并没有完全解决问题——我如何确保 Lucene 不会超出我有限的磁盘空间?此外,我在同一张光盘上有几个单独的索引,所以,如果它们现在自动随机合并,那么我需要一种方法来确保它们不会在同一次重新索引运行期间这样做通过我的应用程序。
    • 与其期望 Lucene 适合给定的分区,不如为它使用be planning。甚至数据库都没有为您提供这种功能。最后但同样重要的是,磁盘很便宜(这些天你可以花 100 美元左右买到 1Tb 磁盘,我敢打赌你的索引远低于 1T)。
    • 感谢您没有阅读问题,其中特别提到不使用盘片。
    • 好的,你让我上了这个!无论如何,我仍然认为边缘条件的优化(当磁盘快满时)太不可预测了,特别是如果你运行多个独立的索引。我仍然不明白为什么你不能接受容量规划。
    • 可能是因为分配和保留每个索引大小的 2 倍以用于 24/7/365 空置的空间是不合理的,没有所有索引碰巧达到的情况优化点,并且正在积极优化?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-14
    • 1970-01-01
    • 2017-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多