Enhance Solr logging
SolrDocumentConverter
- Log warnings (mapping availble but not attribute) only if DEBUG is enabled.
SolrUpdatePipelet
- Deprecate processAsBunch methods (unused, not applicable via script engine).
- New processResponse method providing enhanced logging of what the pipelet sends to Solr server.
diff --git a/core/org.eclipse.smila.solr/code/src/org/eclipse/smila/solr/update/SolrDocumentConverter.java b/core/org.eclipse.smila.solr/code/src/org/eclipse/smila/solr/update/SolrDocumentConverter.java
index 0ad2eb4..c54c6d6 100755
--- a/core/org.eclipse.smila.solr/code/src/org/eclipse/smila/solr/update/SolrDocumentConverter.java
+++ b/core/org.eclipse.smila.solr/code/src/org/eclipse/smila/solr/update/SolrDocumentConverter.java
@@ -192,7 +192,7 @@
}
}
} else {
- if (_log.isWarnEnabled()) {
+ if (_log.isDebugEnabled()) {
final String message =
String.format("Record does not contain mapping for given key. _recordid=%s, key=%s", id, name);
_log.warn(message);
diff --git a/core/org.eclipse.smila.solr/code/src/org/eclipse/smila/solr/update/SolrUpdatePipelet.java b/core/org.eclipse.smila.solr/code/src/org/eclipse/smila/solr/update/SolrUpdatePipelet.java
index c269fa6..e509c9c 100755
--- a/core/org.eclipse.smila.solr/code/src/org/eclipse/smila/solr/update/SolrUpdatePipelet.java
+++ b/core/org.eclipse.smila.solr/code/src/org/eclipse/smila/solr/update/SolrUpdatePipelet.java
@@ -110,15 +110,15 @@
case DELETE_BY_QUERY:
final String query = params.getDeleteQeuery();
if (query == null) {
- throw new ProcessingException("Parameter '" + UpdateParams.DELETE_QUERY
- + "' is required when using operation DELETE_BY_QUERY");
+ throw new ProcessingException(
+ "Parameter '" + UpdateParams.DELETE_QUERY + "' is required when using operation DELETE_BY_QUERY");
}
response = server.deleteByQuery(query, commitWithinMs);
break;
default:
throw new NotImplementedException(operation.toString());
}
- handleResponse(response, id);
+ processResponse(response, index, operation.toString(), id);
results.addResult(id);
} catch (Exception exception) {
results.addFailedResult(id, exception);
@@ -126,6 +126,28 @@
}
}
+ private void processResponse(final UpdateResponse response, final String index, final String operation,
+ final String id) {
+ final int status = response.getStatus();
+ if (status == 0) {
+ if (_log.isInfoEnabled()) {
+ final long duration = response.getElapsedTime();
+ final String message =
+ String.format("Process record on Solr server: _recordid: %s; index: %s; operation: %s; duration: %sms.",
+ id, index, operation, duration);
+ _log.info(message);
+ }
+ } else {
+ if (_log.isErrorEnabled()) {
+ final String message =
+ String.format("Cannot process record on Solr server: _recordid: %s; index: %s; operation: %s; status:%s.",
+ id, index, operation, status);
+ _log.error(message);
+ }
+ }
+ }
+
+ @Deprecated
private void processAsBunch(final Blackboard blackboard, final String[] ids, final UpdateParams params,
final ResultCollector results) throws ProcessingException {
final Map<String, Map<Operation, Collection<String>>> serversAndOperations =
@@ -174,6 +196,7 @@
}
}
+ @Deprecated
private Map<String, Map<Operation, Collection<String>>> collectServersAndOperations(final String[] ids,
final UpdateParams params) {
final Map<String, Map<Operation, Collection<String>>> servers =
@@ -204,15 +227,15 @@
return servers;
}
+ @Deprecated
private int calculateLowestCommitWithinMs(final Collection<String> records, final UpdateParams params) {
int commitWithinMs = UpdateParams.COMMIT_WITHIN_MS_DEFAULT;
for (final String id : records) {
params.setCurrentRecord(id);
final Integer param = params.getCommitWithinMs(false);
if (param != null) {
- commitWithinMs =
- commitWithinMs == UpdateParams.COMMIT_WITHIN_MS_DEFAULT || commitWithinMs > param ? param
- : commitWithinMs;
+ commitWithinMs = commitWithinMs == UpdateParams.COMMIT_WITHIN_MS_DEFAULT || commitWithinMs > param ? param
+ : commitWithinMs;
}
}
return commitWithinMs;
@@ -232,6 +255,7 @@
return document;
}
+ @Deprecated
private void handleResponse(final UpdateResponse response, final String... id) throws ProcessingException {
if (SolrUtils.isErrorResponse(response)) {
final String message = String.format("Error returned by Solr (status=%s).", response.getStatus());