Optimization Lucene更新文档速度

Optimization Lucene更新文档速度,optimization,lucene,Optimization,Lucene,我通过Lucene同时索引了大约5k个文档,每个文档大小约为20kB,我需要通过updateDocument方法经常更新它们 我正在使用NRT,其中最多可以有50个线程更新文档。提交在100次更新/插入或10分钟超时后在单独的线程中完成 到目前为止,每个文档更新的平均持续时间为1秒,最终达到峰值(80秒,需要分析具体文档) 有人能告诉我应该使用什么策略/优化来加快文档更新吗?我发现,当应用程序要求最新的读取器时,NRT会刷新内存中的文档,这从索引的角度来看是没有好处的 切换到正常索引,并将刷新策

我通过Lucene同时索引了大约5k个文档,每个文档大小约为20kB,我需要通过updateDocument方法经常更新它们

我正在使用NRT,其中最多可以有50个线程更新文档。提交在100次更新/插入或10分钟超时后在单独的线程中完成

到目前为止,每个文档更新的平均持续时间为1秒,最终达到峰值(80秒,需要分析具体文档)


有人能告诉我应该使用什么策略/优化来加快文档更新吗?

我发现,当应用程序要求最新的读取器时,NRT会刷新内存中的文档,这从索引的角度来看是没有好处的


切换到正常索引,并将刷新策略更改为按项目计数而不是内存来处理,因为较大的文档会导致频繁刷新。

如果需要高效、快速的更新,您可能需要查看支持。过去几年在这方面做了很多工作,我不确定这是不是问题所在。我相信NRT搜索旨在提高活跃度,使更新立即可用于搜索。听起来这里的问题是更新需要太长时间才能完成,5000个更新的负载在大约1.5小时内完成。这是正确的吗?1秒钟对于更新一个文档来说非常长,除非您的分析链非常昂贵。你能介绍一下吗?瓶颈是什么?如果您没有在每次更新时提交,但有一个后台任务定期发布提交,您可能能够提高速度。在我调查后发送一些更具体的详细信息。我使用NRT时,更新的文件是同时完成多达50个线程。我在100个文档或10分钟超时后在单独的线程中提交项目。总体性能是每个文档1秒,但有时一个文档需要80秒(我需要深入分析)。我想知道这种缓慢的更新是否是由错误的策略造成的。