@Override public Status read( final String table, final String key, final Set<String> fields, final Map<String, ByteIterator> result) { try { final SearchResponse searchResponse = search(table, key); if (searchResponse.getHits().totalHits == 0) { return Status.NOT_FOUND; } final SearchHit hit = searchResponse.getHits().getAt(0); if (fields != null) { for (final String field : fields) { result.put(field, new StringByteIterator((String) hit.getSource().get(field))); } } else { for (final Map.Entry<String, Object> e : hit.getSource().entrySet()) { if (KEY.equals(e.getKey())) { continue; } result.put(e.getKey(), new StringByteIterator((String) e.getValue())); } } return Status.OK; } catch (final Exception e) { e.printStackTrace(); return Status.ERROR; } }
@Override public Status delete(final String table, final String key) { try { final SearchResponse searchResponse = search(table, key); if (searchResponse.getHits().totalHits == 0) { return Status.NOT_FOUND; } final String id = searchResponse.getHits().getAt(0).getId(); final DeleteResponse deleteResponse = client.prepareDelete(indexKey, table, id).get(); if (deleteResponse.getResult() == DocWriteResponse.Result.NOT_FOUND) { return Status.NOT_FOUND; } if (!isRefreshNeeded) { synchronized (this) { isRefreshNeeded = true; } } return Status.OK; } catch (final Exception e) { e.printStackTrace(); return Status.ERROR; } }
@Override public Status update(final String table, final String key, final Map<String, ByteIterator> values) { try { final SearchResponse response = search(table, key); if (response.getHits().totalHits == 0) { return Status.NOT_FOUND; } final SearchHit hit = response.getHits().getAt(0); for (final Entry<String, String> entry : StringByteIterator.getStringMap(values).entrySet()) { hit.getSource().put(entry.getKey(), entry.getValue()); } final IndexResponse indexResponse = client.prepareIndex(indexKey, table, hit.getId()).setSource(hit.getSource()).get(); if (indexResponse.getResult() != DocWriteResponse.Result.UPDATED) { return Status.ERROR; } if (!isRefreshNeeded) { synchronized (this) { isRefreshNeeded = true; } } return Status.OK; } catch (final Exception e) { e.printStackTrace(); return Status.ERROR; } }
assertTrue("should return 1 or more search results", searchResponse.getHits().getTotalHits() > 0); SearchHit searchHit = searchResponse.getHits().getAt(0); String resourcePath = String.format("/%s/%s/%s", searchHit.getIndex(), MSG_DOC_TYPE, searchHit.getId());
assertTrue("should return 1 or more search results", searchResponse.getHits().getTotalHits() > 0); SearchHit searchHit = searchResponse.getHits().getAt(0); String resourcePath = String.format("/%s/%s/%s", searchHit.getIndex(), EVENT_DOC_TYPE, searchHit.getId());
assertEquals("search results should be length 1", searchResponse.getHits().getTotalHits(), 1); SearchHit searchHit = searchResponse.getHits().getAt(0); GetResponse response = elasticSearchClient .prepareGet(searchHit.getIndex(), MSG_DOC_TYPE, searchHit.getId())
SearchHit searchHit = searchResponse.getHits().getAt(0); GetResponse response = elasticSearchClient .prepareGet(searchHit.getIndex(), EVENT_DOC_TYPE, searchHit.getId())
position = tracker[scoreDoc.shardIndex]++; } while (shardDocs[scoreDoc.shardIndex].scoreDocs[position] != scoreDoc); hits[i] = shardHits[scoreDoc.shardIndex].getAt(position);
aggregationsMap.put(topHits.getHits().getAt(0).getId(), buildRecords(iterable, (InternalAggregations) bucket.getAggregations()));
/** * Builds a search response containing each of the included search buckets. */ public NpmSearchResponse buildResponseForResults(final List<Terms.Bucket> buckets, final int size, final int from) { List<NpmSearchResponseObject> objects = buckets.stream() .map(bucket -> (TopHits) bucket.getAggregations().get("versions")) .map(TopHits::getHits) .map(searchHits -> searchHits.getAt(0)) .map(this::buildSearchResponseObject) .skip(from) .limit(size) .collect(toList()); return buildResponseForObjects(objects); }
public static void assertSearchHit(SearchResponse searchResponse, int number, Matcher<SearchHit> matcher) { assertThat(number, greaterThan(0)); assertThat("SearchHit number must be greater than 0", number, greaterThan(0)); assertThat(searchResponse.getHits().getTotalHits(), greaterThanOrEqualTo((long) number)); assertSearchHit(searchResponse.getHits().getAt(number - 1), matcher); assertVersionSerializable(searchResponse); }
protected <E extends EsInstance> E getInstanceByIdForClass(String instanceId, Class objectClass) throws Exception { SearchResponse response = this.retrieveByField("id", instanceId, objectClass); if (response.getHits().totalHits() > 0) { String str = response.getHits().getAt(0).getSourceAsString(); E inst = (E) insertMapper.readValue(str, objectClass); inst.setVersion(response.getHits().getAt(0).getVersion()); return inst; } return null; }
@Override public EsAwsStatus getAwsStatus(String instanceId) throws Exception { SearchResponse response = this.retrieveByField("id", instanceId, EsAwsStatus.class); if (response.getHits().totalHits() > 0) { String str = response.getHits().getAt(0).getSourceAsString(); EsAwsStatus status = insertMapper.readValue(str, EsAwsStatus.class); return status; } return null; }
@Override public EsServiceMapping getServiceMappingByName(String name) throws Exception { SearchResponse response = this.retrieveByField("name", name, EsServiceMapping.class); if (response.getHits().totalHits() > 0) { String str = response.getHits().getAt(0).getSourceAsString(); EsServiceMapping serviceMapping = mapper.readValue(str, EsServiceMapping.class); return serviceMapping; } return null; } }
@Override public EsDailySnapshotInstance getInstanceById(String instanceId) throws Exception { SearchResponse response = this.retrieveByField("_id", instanceId, EsDailySnapshotInstance.class); if (response.getHits().totalHits() > 0) { String str = response.getHits().getAt(0).getSourceAsString(); EsDailySnapshotInstance inst = essnapshotinstanceMapper.readValue(str, EsDailySnapshotInstance.class); inst.setId(response.getHits().getAt(0).getId()); inst.setVersion(response.getHits().getAt(0).getVersion()); return inst; } return null; }
private SearchHit nextHit() { if (relativePos == scrollResult.getElasticsearchResponse().getHits().getHits().length) { // Retrieve next scroll scrollResult = searchService.scroll(scrollResult); relativePos = 0; } SearchHit hit = scrollResult.getElasticsearchResponse().getHits().getAt(relativePos); relativePos++; pos++; return hit; }
private <E extends EsDocument> ScrollableResponse<List<E>> convertToScrollableResponse( SearchResponse response, ThrowingFunction<String, E> createFunc) throws Exception { ArrayList<E> list = new ArrayList<>(); ScrollableResponse<List<E>> ret = new ScrollableResponse<>(); ret.setValue(list); ret.setContinousToken(response.getScrollId()); for (int i = 0; i < response.getHits().getHits().length; i++) { String str = response.getHits().getAt(i).getSourceAsString(); E element = createFunc.apply(str); element.setId(response.getHits().getAt(i).getId()); element.setVersion(response.getHits().getAt(i).getVersion()); list.add(element); } return ret; } }
private <T> void fillMultipleDataResult(Class<T> clazz, SearchResponse searchResponse, GetMultipleDataResult<T> finalResponse, int from, boolean managePagination) throws IOException { if (managePagination) { int to = from + searchResponse.getHits().getHits().length - 1; finalResponse.setFrom(from); finalResponse.setTo(to); finalResponse.setTotalResults(searchResponse.getHits().getTotalHits()); finalResponse.setQueryDuration(searchResponse.getTookInMillis()); } String[] resultTypes = new String[searchResponse.getHits().getHits().length]; T[] resultData = (T[]) Array.newInstance(clazz, resultTypes.length); for (int i = 0; i < resultTypes.length; i++) { SearchHit hit = searchResponse.getHits().getAt(i); resultTypes[i] = hit.getType(); resultData[i] = hitToObject(hit); } finalResponse.setData(resultData); finalResponse.setTypes(resultTypes); }
private String getStoredQueryId(String instanceId) { try { initialize(); QueryBuilder agentQueryBuilder = matchQuery(instanceIdFieldName, instanceId); SearchHits agentHits = getElasticClient() .prepareSearch(policyIndexName) .setTypes(percolatorTypeName) .setQuery(agentQueryBuilder) .setSize(1) .get(elasticsearchProperties.getElasticsearchSearchTimeout()) .getHits(); if (agentHits.getTotalHits() == 0) { return null; } return agentHits.getAt(0).getId(); } catch (IOException e) { throw new BackEndRequestFailedCpeException(e); } }