0

我有一个包含 100K-1000k 文档的 solr 核心。
我有一个场景,我需要在大多数文档上添加或设置字段值。
通过 Solr 执行此操作需要太多时间。
我想知道是否有办法使用 Lucene 库执行此类任务并直接访问 Solr 索引(开销更少)。
如果需要,我可以关闭核心,运行我的代码,然后重新加载核心(希望它比使用 Solr 花费更少的时间)。
很高兴听到有人是否已经做过这样的事情以及其中的主要陷阱是什么。

4

2 回答 2

0

I have a scenario where I need to add or set a field value on most document.

If you have to do it often, maybe you need to look at things like ExternalFileField. There are limitations, but it may be better than hacking around Solr's infrastructure by going directly to Lucene.

于 2013-10-29T02:32:58.297 回答
0

类似的问题已经在 Lucene Java 邮件列表中讨论过多次。根本问题是您无法在 Lucene(以及 Solr)中更新文档。

相反,您需要删除该文档并插入一个新文档。这显然增加了分析、合并索引段等的开销。然而,指定数量的文档并不是什么大事,也不应该花几天时间(您是否尝试过使用多个线程更新 Solr?)。

您当然可以尝试通过 Lucene 执行此操作,看看这是否有任何不同,但您需要绝对确定您将使用与 Solr 相同的分析器。

于 2013-10-28T14:39:01.077 回答