【发布时间】:2017-11-07 06:05:12
【问题描述】:
我有一个 Solr 索引文档,我想更新一些字段。但随之而来的问题是,如果我正在更新单个文档,那么它会完美更新。但是如果我使用 for 循环同时更新多个文档,则相同的代码会引发错误。
这是我用于更新单个文档的代码,它正在工作 -
SolrInputDocument doc = new SolrInputDocument();
HashMap<Integer, String> Id = new HashMap<>();
HashMap<Integer, String> Title = new HashMap<>();
HashMap<Integer, String> Name = new HashMap<>();
Id.put(0, 123);
Id.put(1, 345);
Title.put(0, "Title1");
Title.put(1, "Title2");
Name.put(0, "Tony");
Name.put(1, "Scarlet");
doc.addField("Id", Id.get(0));
doc.addField("Title", Title.get(0));
doc.addField("Name", Name.get(0));
solr.add(doc);
solr.commit();
现在如果我使用 for 循环运行相同的代码 -
SolrInputDocument doc = new SolrInputDocument();
HashMap<Integer, String> Id = new HashMap<>();
HashMap<Integer, String> Title = new HashMap<>();
HashMap<Integer, String> Name = new HashMap<>();
Id.put(0, 123);
Id.put(1, 345);
Title.put(0, "Title1");
Title.put(1, "Title2");
Name.put(0, "Tony");
Name.put(1, "Scarlet");
for (int i =0; i<2; i++) {
doc.addField("Id", Id.get(i));
doc.addField("Title", Title.get(i));
doc.addField("Name", Name.get(i));
solr.add(doc);
solr.commit();
}
然后这是抛出错误 - “文档包含 uniqueKey 字段的多个值:Id=[123, 345]”。 注意 - Id 是我的唯一键。 这里出了什么问题?
【问题讨论】: