1

我正在构建一个搜索引擎,并且对于很多不同的名称都有一个不那么唯一的 ID...因此,例如,可能有一个 B0051QVF7A 的 ID,它有多个名称,例如“Kindle”“Amazon Kindle”“Amazon Kindle 3G”“Kindle 电子书阅读器”“新 Kindle”等。

问题和我遇到的问题是,我正在尝试从 11 百万行的数据库中输入这些数据。每次阅读一个。所以我没有每个 ID 的所有名称。我每次都在列表中添加新文档。

我想知道的是如何将名称添加到现有文档中?如果我正确阅读文档,它似乎会覆盖整个文档,而不是向该字段添加额外信息......我只想为文档多值字段添加一个额外的名称......

我知道如果删除名称可能会导致一些奇怪而奇妙的“问题”(在上面的示例中,当发布较新的 Kindle 时可能会删除“新 Kindle”)但我正在考虑不时地重新创建索引,清除此类问题(大约一个月一次。目前创建索引大约需要 45 分钟)。

那么,如何为现有文档的 solr 中的多值字段添加值?

4

1 回答 1

1

因为根据@Mauricio Scheffer 的评论链接的问题...... Solr 目前不支持更新现有文档中的单个字段值。我看到这里可能有几个选择......

  1. 在您从数据库中提取数据的过程中,当它找到一个新名称时,它需要从 Solr 中提取现有文档的所有字段,添加新值并将完整的文档重新发送到 Solr(您可能已经这样做了) )。
  2. 向从数据库读取的代码添加一些额外的逻辑,以便在将文档插入索引之前收集每个文档的所有唯一名称。但是,鉴于您有大约 1100 万条记录,可能存在资源限制,这会阻止此操作可行。
于 2011-10-18T17:10:53.677 回答