Lucene.net有大文件

时间:2013-05-22 03:34:46

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

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

提前致谢!

1 个答案:

答案 0 :(得分:1)

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

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

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