Solrのインデックス付きドキュメントがあり、一部のフィールドを更新したいとします。しかし、問題は、私が1つのドキュメントを更新していて、完全に更新している場合です。しかし、同じコードで複数のドキュメントをまとめて更新するためにforループを使用すると、エラーが発生します。ここで forループを使用してSolrJを使用してSolrドキュメントを更新します。
は、単一のドキュメントを更新するための私のコードであり、それは働いている - 今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は私のユニークなキーです。 ここで何が問題ですか?