【问题标题】:Lucene.net with large files带有大文件的 Lucene.net
【发布时间】:2013-05-16 23:46:13
【问题描述】:

我想知道是否可以索引和存储多个大小超过 4GB 的大文件。我这样做没有问题,搜索文档时有一个例外——我无法检索并突出显示匹配文档的内容。下面的代码允许我创建可搜索索引而不会耗尽内存。

var doc = new Document();
doc.Add(new Field(string, TextReader));

将其更改为下面的行最终会导致内存不足异常。

new Field(string, TextReader.ReadToEnd(), Field.Store.YES, Field.Index.ANALYZED)

我能够索引和存储 28 个文件,每个文件 150MB,这使我能够搜索和检索匹配的文本。但是,查询性能是不可接受的,经过两三次搜索后,就会抛出内存不足异常。我了解异常的原因及其发生的原因。社区的问题是我错过了什么吗? Lucene API 中是否有解决我的问题的功能?我已经有了一个解决方案,可以拆分文件并执行我想要实现的目标,而无需在多个服务器上水平扩展应用程序并创建文件块。

提前致谢!

【问题讨论】:

    标签: search lucene indexing full-text-search lucene.net


    【解决方案1】:

    您真的需要将这些文件存储在Lucene 索引 中吗?这只会增加开销并减慢一切。

    只需将这些文件存储在文件系统中,并在 Lucene 文档中有路径引用(例如/path/to/file)。

    如果您有足够的可用 RAM,索引内容应该没问题。

    【讨论】:

    • 不存储文件内容的问题是匹配文本的突出显示。只要您不必显示匹配文件中突出显示的关键字的几行,索引就不是问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多