【问题标题】:Solr MultiValue Fields and adding valuesSolr 多值字段和添加值
【发布时间】:2011-10-18 15:17:51
【问题描述】:

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

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

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

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

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

【问题讨论】:

标签: search solr indexing multivalue


【解决方案1】:

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

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

【讨论】:

  • 感谢您的来信。我实际上已经尝试过选项 2... 查询所有不同的 ID,然后从 ID = 所述 ID 的表中选择所有数据...比原来慢一点,但可能比选项 1 快...跨度>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-03-31
  • 1970-01-01
  • 1970-01-01
  • 2013-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多