2

我正在考虑使用 Apache Solr。在我的数据库中,我将有大约 10.000.000 条记录。我将使用它的最坏情况有大约 20 个可搜索/可排序的字段。我的问题是这些字段在白天可能会频繁更改值。例如,在我的数据库中,我可能会同时更改 10000 条记录的某些字段,这可能每天发生 0、1 或 1000 次等。关键是每次我更新数据库中的值时,我都希望它被更新在 solr 中,这样我每次都可以使用更新的数据进行搜索。

对于那些使用过 solr 的人,在这样的卷中重新索引的速度有多快?此更新(从我阅读的内容中删除并读取记录)是否会进行索引,例如花费 5 秒、5 分钟、1 小时,什么?考虑它将在一个好的服务器上运行。

4

1 回答 1

3

如果不实际尝试,很难说清楚。但是您需要知道 Lucene 和 Solr 目前不支持单个文档更新(尽管有一些工作正在进行中https://issues.apache.org/jira/browse/LUCENE-3837),这意味着您需要重新- 索引整个记录,即使您只更新了一个字段。

此外,Lucene 和 Solr 在执行批量更新方面比单文档更新要好得多。为了解决这个问题,Solr 有一个不错的commitWithin参数,它允许 Solr 将各个更新组合在一起以提高吞吐量。

您应该谨慎使用这个数字,但我经常在非常传统的硬件上以约 5000 文档/秒的吞吐量创建数百万个文档(约 30 个小字段)的索引。

于 2012-06-28T16:33:27.467 回答