本文介绍了Solr 条件添加/更新?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个相当简单的需求,需要在 Solr 中进行条件更新,这在 MySQL 中很容易完成.
I have a fairly simple need to do a conditional update in Solr, which is easily accomplished in MySQL.
例如
- 我有 100 个文档,其中有一个名为
- 我要发布 10 个文档,其中一些可能是重复的
s,在这种情况下 Solr 将使用相同的
更新现有记录>s
- 我有一个名为
的字段,如果新的
,我只想更新
code> 比旧的
大(当然,这仅适用于重复的
)
- I have 100 documents with a unique field called
<id>
- I am POSTing 10 documents, some of which may be duplicate
<id>
s, in which case Solr would update the existing records with the same<id>
s - I have a field called
<dateCreated>
and I would like to only update a<doc>
if the new<dateCreated>
is greated than the old<dateCreated>
(this applies to duplicate<id>
s only, of course)
我怎样才能完成这样的事情?
How would I be able to accomplish such a thing?
上下文试图解决竞争条件,导致对同一 ID 进行多次添加但执行顺序错误.
The context is trying to combat race conditions resulting in multiple adds for the same ID but executing in the wrong order.
谢谢.
推荐答案
我想到了两种方法:
- 编写您自己的
UpdateHandler
并覆盖addDoc
来实现该检查. - 在您的客户端代码中放置适当的锁(关键部分),以便获取存储的文档、比较日期并以线程安全的方式有条件地添加新文档.
请记住,Solr 不是数据库,将其与 MySQL 进行比较是在比较苹果和橘子.
Remember that Solr is not a database, comparing it to MySQL is comparing apples and oranges.
这篇关于Solr 条件添加/更新?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!