diff --git a/source/net/yacy/cora/federate/solr/connector/SolrServerConnector.java b/source/net/yacy/cora/federate/solr/connector/SolrServerConnector.java index 4c3fe0c1eb..13f292920e 100644 --- a/source/net/yacy/cora/federate/solr/connector/SolrServerConnector.java +++ b/source/net/yacy/cora/federate/solr/connector/SolrServerConnector.java @@ -216,11 +216,14 @@ public void add(final SolrInputDocument solrdoc) throws IOException, SolrExcepti clearCaches(); // prevent further OOM if this was caused by OOM ConcurrentLog.logException(e); // catches "version conflict for": try this again and delete the document in advance + /* + // with possible partial update docs, don't try to delete index doc and reinsert solrdoc + // as this would result in a index doc with just the updated fields try { this.server.deleteById((String) solrdoc.getFieldValue(CollectionSchema.id.getSolrFieldName())); } catch (final SolrServerException e1) { ConcurrentLog.logException(e1); - } + }*/ try { this.server.add(solrdoc, -1); } catch (final Throwable ee) { @@ -255,13 +258,17 @@ public void add(final Collection solrdocs) throws IOException clearCaches(); // prevent further OOM if this was caused by OOM ConcurrentLog.logException(e); // catches "version conflict for": try this again and delete the document in advance + /* + // with possible partial update docs, don't try to delete index doc and reinsert solrdoc + // as this would result in a index doc with just the updated fields + List ids = new ArrayList(); for (SolrInputDocument solrdoc : solrdocs) ids.add((String) solrdoc.getFieldValue(CollectionSchema.id.getSolrFieldName())); try { this.server.deleteById(ids); } catch (final SolrServerException e1) { ConcurrentLog.logException(e1); - } + }*/ try { this.server.commit(); } catch (final Throwable eee) { @@ -272,6 +279,8 @@ public void add(final Collection solrdocs) throws IOException this.server.add(solrdocs, -1); } catch (final Throwable ee) { ConcurrentLog.logException(ee); + List ids = new ArrayList(); + for (SolrInputDocument solrdoc : solrdocs) ids.add((String) solrdoc.getFieldValue(CollectionSchema.id.getSolrFieldName())); log.warn(e.getMessage() + " IDs=" + ids.toString()); throw new IOException(ee); }