我想在读取流时使用Lucene对其进行索引。由于数据的大小和RAM的限制,我无法将整个东西放入缓冲区;相反,我希望Lucene从流中消费,索引,等待更多的数据可用,消费更多,直到EOF。
Lucene应该只缓冲它需要的东西:也就是说,部分令牌,直到获得足够的字符来结束令牌。
我能和Lucene一起做吗?怎样
您应该能够将Reader
传递到字段构造函数,而不是String
。我相信这不需要将整个字段读入内存(我还没有对此进行过大量测试)。您将无法使字段存储,但如果您无论如何都无法将其加载到内存中,您为什么要这样做?
然而,我不认为有任何方法可以一次只读取部分令牌。我相信您需要能够以绝对最小值将每个令牌加载到内存中。如果您的令牌太大以至于溢出可用内存,您可能需要重新考虑您的分析方案。