Search 带有大文件的Lucene.net

Search 带有大文件的Lucene.net,search,lucene,indexing,full-text-search,lucene.net,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.I

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


提前谢谢

您真的需要将这些文件存储在Lucene索引中吗?这只会增加开销,降低速度

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


不过,只要有足够的可用RAM,内容索引就可以了。

不存储文件内容的问题是突出显示匹配的文本。索引不是问题,只要您不必显示匹配文件中带有高亮显示关键字的几行。