0

我想知道是否可以索引和存储许多大小超过 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 中是否有解决我的问题的功能?我已经有了一个解决方案,可以拆分文件并执行我想要实现的目标,而无需在多个服务器上水平扩展应用程序并创建文件块。

提前致谢!

4

1 回答 1

1

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

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

不过,只要您有足够的可用 RAM,索引内容应该没问题。

于 2013-05-22T08:36:28.067 回答