我需要经常在solr中更新大量文档.例如,为user_id = 5设置"online"= true,依此类推.但是通过http处理程序的索引速度非常慢.Solr支持通过查询删除文件,有没有办法通过查询更新?
jav*_*nna 11
不,遗憾的是,没有像查询更新这样的功能.它将非常有用,就像一个新功能,可以更新文档而无需完全重新提交; 有一个5岁的jira问题.现在您应该使用更新的字段重新提交您的文档,如果您使用相同的文件,它们将被覆盖(这意味着删除+重新插入)uniqueKey.
那么,您是否要为每个要更新的文档发出http请求?如果是,您可以更快地一次提交多个文档,如下所示:
<add>
  <doc>
    <field name="employeeId">05991</field>
    <field name="office">Bridgewater</field>
  </doc>
  <doc>
    <field name="employeeId">05992</field>
    <field name="office">Bridgewater</field>
  </doc>
  <doc>
    <field name="employeeId">05993</field>
    <field name="office">Bridgewater</field>
  </doc>
</add>
Run Code Online (Sandbox Code Playgroud)
        仍然没有查询更新,但2012年的答案已过时.现在在Solr 4.x中有https://wiki.apache.org/solr/Atomic_Updates,因此您可以分两步执行您想要执行的操作,而无需访问原始文档.
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           13246 次  |  
        
|   最近记录:  |