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