2014-08-31 38 views
0

我想索引solr/lucene中的大型数据。既然它是一个遗留系统,并且由于其他原因,我必须通过C++层来完成。但在此之前,我想优化流程,所以我没有做到这一点。我发现以下几件事:solr/lucene中索引大型文档的可能问题

  1. 批量索引:这将帮助我的情况下索引将失败之间,因为一些失败之间。所以我可以从剩下的批次开始。
  2. 缓冲查找
  3. 索引并发

我发现在过去的2项的地方,同时寻找不同的问题,但我无法完全理解。

所以如果有人能帮助我理解这两个问题和任何其他可能出现的问题。

+1

我们在谈论多大的文件?有多少文件?您是否试图实际索引一些文档以查看是否有任何问题?过早优化等。 – MatsLindh 2014-08-31 10:14:01

+0

我没有实际索引文件。这可能会发生,我不需要这里给出的任何优化技术。但是,我想在批处理索引的上下文中理解这两个术语(缓冲区查找和索引器并发),这是出于我的好奇心。 – Shweta 2014-08-31 10:29:03

回答

1

当你提到“缓冲区查找”时,我不确定你的意思是什么 - 通常这是允许服务器拥有体面的内存缓存的情况,尽可能多的查询可以是在不需要重新计算文档之间的交集以及哪些文档包含在针对每个查询的特定集合中的情况下应答。对于Solr,使用不同的*cache设置进行配置。对于大多数应用程序,这些要求会有所不同,具体取决于查询负载,字段定义等。执行提交(使索引在索引中可见)通常会使缓存过期,因为缓存可能不再有效。

索引器并发性允许服务器将文档同时从多个线程插入到实际索引中,而无需在线程之间进行锁定。 Lucene制作concurrent indexing possible back in 2011(用于Lucene 4.0),并允许更快速和更高效地更新索引。这是否重要取决于您的应用程序。