如何在solr数据库中更新多个没有id的文档?

时间:2018-09-11 17:20:01

标签: solr

我的solr数据库中有1.000.000条记录。 我想更新所有没有唯一键ID的记录,  但我收到错误,需要唯一密钥! 我的Solr文件是:

  {
  id = 001, 
  name="Joe", 
  city = [Hyderabad], 
  phone = [9848022337]
  }

这是我的代码。

  //Preparing the Solr client 

  //Preparing the Solr document 

  SolrInputDocument doc = new SolrInputDocument();  

  Map map=new HashMap();
  map.put("set","Ahmet");
  doc.addField("name", map);

  // or adding id list 
  // List ids = new ArrayList();
 // doc.addField("id",ids); 


  updateRequest.add( doc );  
  UpdateResponse rsp = updateRequest.process(Solr);

我该怎么办?

similar sql is update tableName set name="ahmet"

1 个答案:

答案 0 :(得分:1)

不能。

Solr中的任何更新都必须引用现有文档的uniqueKey-没有通过查询更新或类似于UPDATE foo SET bar = 'baz' WHERE field = 'spam';的功能。 uniqueKey字段用于定义是创建新文档还是覆盖旧文档。

在您的示例中,您似乎有一个唯一的id字段,但是如果不是这样,则可以configure Solr to assign a unique id to each document when it's added to the index。然后,在更新现有文档时,您必须引用该ID。