private Optional<Document> toDocument(SearchHit hit) { Document document = Document.fromJSON(hit.getSource()); document.setDocumentID(hit.getId()); return Optional.of(document); } }
private Document toDocument(SearchResult result, Long timestamp) { Document document = Document.fromJSON(result.getSource()); document.setTimestamp(timestamp); document.setDocumentID(result.getId()); return document; }
public Document(Map<String, Object> document, String guid, String sensorType, Long timestamp, String documentID) { setDocument(document); setGuid(guid); setTimestamp(timestamp); setSensorType(sensorType); setDocumentID(documentID); }
/** * Handles the {@link BulkResponse} received from Elasticsearch. * @param bulkResponse The response received from Elasticsearch. * @param documents The documents included in the bulk request. * @param results The writer results. */ private void handleBulkResponse(BulkResponse bulkResponse, List<Indexable> documents, BulkDocumentWriterResults<D> results) { if (bulkResponse.hasFailures()) { // interrogate the response to distinguish between those that succeeded and those that failed for(BulkItemResponse response: bulkResponse) { if(response.isFailed()) { // request failed D failed = getDocument(response.getItemId()); Exception cause = response.getFailure().getCause(); String message = response.getFailureMessage(); results.addFailure(failed, cause, message); } else { // request succeeded D success = getDocument(response.getItemId()); success.setDocumentID(response.getResponse().getId()); results.addSuccess(success); } } } else { // all requests succeeded for(Indexable success: documents) { results.addSuccess(success.document); } } }