我正在考虑使用 Apache Solr。在我的数据库中,我将有大约 10.000.000 条记录。我将使用它的最坏情况有大约 20 个可搜索/可排序字段。我的问题是这些字段在一天中可能会频繁更改值。例如,在我的数据库中,我可能会同时更改 10000 条记录的某些字段,并且这种情况可能每天发生 0、1 或 1000 次等。重点是,每次我更新数据库中的值时,我都希望它被更新也在 solr 中,这样我每次都可以使用更新的数据进行搜索。
对于那些使用过 solr 的人来说,在这样的卷中重新索引可以有多快?例如,此更新(从我读取的内容中删除并读取一条记录)及其索引会花费 5 秒、5 分钟、一小时吗?考虑它将在一个好的服务器上运行。
如果不实际尝试,很难说清楚。但是您需要知道 Lucene 和 Solr 目前不支持单个文档更新(尽管有一些工作正在进行中)https://issues.apache.org/jira/browse/LUCENE-3837 https://issues.apache.org/jira/browse/LUCENE-3837),这意味着即使您只更新了单个字段,您也需要重新索引整个记录。
此外,Lucene 和 Solr 在执行批量更新方面比单文档更新要好得多。为了解决这个问题,Solr 有一个很好的内提交 http://wiki.apache.org/solr/UpdateXmlMessages#Passing_commit_and_commitWithin_parameters_as_part_of_the_URL参数,让 Solr 将各个更新分组在一起以提高吞吐量。
您应该谨慎对待这个数字,但我经常在非常传统的硬件上创建数百万个文档(约 30 个小字段)的索引,吞吐量约为 5000 个文档/秒。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)