一个进程中的多个IndexReader / Writers(Lucene)

时间:2010-10-23 14:49:47

标签: .net lucene lucene.net

我们正在维护一个包含大约20毫米文档的Lucene索引。搜索查询的性质使得索引和查询可以在不同索引之间轻松分割。

要实现我们需要在内存中保留许多(可能是数千个)IndexWriters或IndexReaders / Searchers来处理这些indiceies中的每一个的索引和查询(查询不跨越多个索引)。

我需要知道这将导致的内存压力,以及任何人都可以建议的潜在解决方案。

2 个答案:

答案 0 :(得分:3)

您可能需要查看Solr,它支持创建和管理多个索引(称为核心)。如果有必要,它还将处理多个节点上的所有分发工作。

话虽如此,每个索引的内存开销非常低(按设计)。我认为它类似于每个文档一个字节,然后是唯一术语的数量除以256。

答案 1 :(得分:0)

我想知道您多久更新一次索引,是否有实时要求? 我正在使用java lucene项目,然后你可以查看这个开源项目,Linked-In产生了一些内部工作。 http://sna-projects.com/zoie/

只要搜索内存压力取决于您是否按索引字段的值对结果进行排序。在这种情况下,作为内部lucene工具的字段缓存在某些情况下会产生内存压力。

我希望这会有所帮助。