IT源码网

search之Solr 条件添加/更新

emanlee 2025年05月04日 程序员 59 0

我有一个相当简单的需求,需要在 Solr 中进行条件更新,这在 MySQL 中可以轻松完成。

例如,

  • 我有 100 个文档,其中包含一个名为 <id> 的独特字段
  • 我要发布 10 个文档,其中一些可能重复 <id> s,在这种情况下,Solr 将使用相同的 <id> 更新现有记录。 s
  • 我有一个名为 <dateCreated> 的字段我只想更新 <doc>如果是新的<dateCreated>比旧的伟大<dateCreated> (当然,这仅适用于重复的 <id> )

我怎样才能完成这样的事情?

上下文正在尝试对抗竞争条件,导致同一 ID 多次添加,但执行顺序错误。

谢谢。

请您参考如下方法:

我可以想到两种方法:

  1. 编写您自己的 UpdateHandler 并覆盖 addDoc来实现该检查。
  2. 在客户端代码中放置适当的锁(关键部分),以便获取存储的文档、比较日期并以线程安全的方式有条件地添加新文档。

请记住,Solr 不是数据库,将其与 MySQL 进行比较就像比较苹果和橘子。


评论关闭
IT源码网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!