【问题标题】:Can Lucene.net search from zipped directoryLucene.net 可以从压缩目录中搜索吗
【发布时间】:2021-04-07 11:12:29
【问题描述】:

我已经用 lucene.net FSDirectory 为我的文本文件建立了索引,并用 winzip 压缩了索引目录。

现在我想从目录中搜索一个模式。 Lucene.net 中有什么方法可以从压缩的索引目录中搜索吗?

【问题讨论】:

  • Lucene.NET 索引已经被严重压缩。在索引上使用 winzip 是否节省了很多空间?
  • 例子:使用winzip从495kb压缩到272kb
  • 这可能会有所帮助:How to use HIGH_COMPRESSION in Lucene.NET.

标签: lucene.net


【解决方案1】:

开箱即用,我认为没有办法做到这一点。但是,您也许可以创建自己的 Lucene.NET 扩展,通过在加载到内存时动态解压缩部分索引来支持它。

但即使可以实现,搜索这样的索引也可能会超级慢。

目前还不清楚这种方法是否可以实现,因为 lucene 需要能够访问文件中的精确偏移量,并且您必须能够在不解压整个文件的情况下解压缩 zip 文件中相同偏移量的部分内容。所以这听起来很有挑战性。甚至很有可能这是不可能的。

【讨论】:

  • 可以对文件进行内存解压缩(就像在之前的 beta 中使用 LineFileDocs 所做的那样)。这在 Java 中运行良好,因为它经过高度优化以使用 .jar 文件,这些文件是具有另一个名称的 zip 文件。然而,在 .NET 中这非常慢,这就是为什么我们现在将文件解压缩到临时目录并使用它。
  • @NightOwl888 对于内存大到足以加载整个解压缩索引的情况,这是一个很酷的示例。但是,如果索引不适合内存,我怀疑在不先将其解压缩到磁盘的情况下搜索压缩索引会因为我提到的原因而难以实现。
猜你喜欢
  • 1970-01-01
  • 2012-08-03
  • 2018-01-19
  • 1970-01-01
  • 2012-01-20
  • 1970-01-01
  • 1970-01-01
  • 2011-02-12
  • 1970-01-01
相关资源
最近更新 更多