Как обновить несколько документов без идентификатора в базе данных Solr? - PullRequest
0 голосов
/ 11 сентября 2018

В моей базе данных solr есть 1.000.000 записей. Я хочу обновить все записи без уникального идентификатора ключа, но я получаю сообщение об ошибке уникальный ключ требуется! мой 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 голосов
/ 11 сентября 2018

Вы не можете.

Любое обновление в Solr должно ссылаться на uniqueKey существующего документа - нет такой функциональности, как обновление по запросу или подобное UPDATE foo SET bar = 'baz' WHERE field = 'spam';.Поле uniqueKey определяет, создается ли новый документ или перезаписывается старый.

В вашем примере кажется, что у вас есть уникальное поле id, но если это не так,Вы можете настроить Solr для назначения уникального идентификатора каждому документу при его добавлении в индекс .Затем вам придется ссылаться на этот идентификатор при обновлении существующего документа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...