private Set<ComperableHitResult> simpleOneTimeQueryEach() { SearchHit[] firstTableHits = this.builder.getFirstSearchRequest().get().getHits().getHits(); if(firstTableHits == null || firstTableHits.length == 0){ return new HashSet<>(); } Set<ComperableHitResult> result = new HashSet<>(); fillComperableSetFromHits(this.fieldsOrderFirstTable, firstTableHits, result); SearchHit[] secondTableHits = this.builder.getSecondSearchRequest().get().getHits().getHits(); if(secondTableHits == null || secondTableHits.length == 0){ return result; } removeValuesFromSetAccordingToHits(this.fieldsOrderSecondTable,result,secondTableHits); return result; }
private static List<SecurityStandardCategoryStatistics> processSecurityReportSearchResults(SearchRequestBuilder request, boolean includeCwe) { SearchResponse response = request.get(); return response.getAggregations().asList().stream() .map(c -> processSecurityReportIssueSearchResults((InternalFilter) c, includeCwe)) .collect(MoreCollectors.toList()); }
@Override public void run() throws IOException, SqlParseException { SearchResponse firstResponse = this.multiQueryBuilder.getFirstSearchRequest().get(); SearchHit[] hits = firstResponse.getHits().getHits(); List<SearchHit> unionHits = new ArrayList<>(hits.length); fillInternalSearchHits(unionHits,hits,this.multiQueryBuilder.getFirstTableFieldToAlias()); SearchResponse secondResponse = this.multiQueryBuilder.getSecondSearchRequest().get(); fillInternalSearchHits(unionHits,secondResponse.getHits().getHits(),this.multiQueryBuilder.getSecondTableFieldToAlias()); int totalSize = unionHits.size(); SearchHit[] unionHitsArr = unionHits.toArray(new SearchHit[totalSize]); this.results = new SearchHits(unionHitsArr, totalSize,1.0f); }
@Override public Map<String, Object> count(String task) { ESSyncConfig config = esSyncConfig.get(task); ESMapping mapping = config.getEsMapping(); SearchResponse response = transportClient.prepareSearch(mapping.get_index()) .setTypes(mapping.get_type()) .setSize(0) .get(); long rowCount = response.getHits().getTotalHits(); Map<String, Object> res = new LinkedHashMap<>(); res.put("esIndex", mapping.get_index()); res.put("count", rowCount); return res; }
private List<SearchHit> fetchAllHits(TableInJoinRequestBuilder tableInJoinRequest) { Integer hintLimit = tableInJoinRequest.getHintLimit(); SearchRequestBuilder requestBuilder = tableInJoinRequest.getRequestBuilder(); if (hintLimit != null && hintLimit < MAX_RESULTS_ON_ONE_FETCH) { requestBuilder.setSize(hintLimit); SearchResponse searchResponse = requestBuilder.get(); updateMetaSearchResults(searchResponse); return Arrays.asList(searchResponse.getHits().getHits()); } return scrollTillLimit(tableInJoinRequest, hintLimit); }
@Test public void fail_to_search_bad_query() { try { es.client().prepareSearch("non-existing-index").get(); fail(); } catch (Exception e) { assertThat(e).isInstanceOf(IllegalStateException.class); assertThat(e.getMessage()).contains("Fail to execute ES search request 'SearchRequest{").contains("}' on indices '[non-existing-index]'"); } }
public static SearchResponse scrollOneTimeWithHits(Client client, SearchRequestBuilder requestBuilder, Select originalSelect, int resultSize) { SearchResponse responseWithHits;SearchRequestBuilder scrollRequest = requestBuilder .setScroll(new TimeValue(60000)) .setSize(resultSize); boolean ordered = originalSelect.isOrderdSelect(); if(!ordered) scrollRequest.addSort(FieldSortBuilder.DOC_FIELD_NAME, SortOrder.ASC); responseWithHits = scrollRequest.get(); //on ordered select - not using SCAN , elastic returns hits on first scroll //es5.0 elastic always return docs on scan // if(!ordered) { // responseWithHits = client.prepareSearchScroll(responseWithHits.getScrollId()).setScroll(new TimeValue(600000)).get(); // } return responseWithHits; }
@Test public void get_with_string_timeout_is_not_yet_implemented() { try { es.client().prepareSearch(FakeIndexDefinition.INDEX).get("1"); fail(); } catch (Exception e) { assertThat(e).isInstanceOf(IllegalStateException.class).hasMessage("Not yet implemented"); } }
@Test public void get_with_time_value_timeout_is_not_yet_implemented() { try { es.client().prepareSearch(FakeIndexDefinition.INDEX).get(TimeValue.timeValueMinutes(1)); fail(); } catch (Exception e) { assertThat(e).isInstanceOf(IllegalStateException.class).hasMessage("Not yet implemented"); } }
@Test public void trace_logs() { logTester.setLevel(LoggerLevel.TRACE); es.client().prepareSearch(FakeIndexDefinition.INDEX).get(); assertThat(logTester.logs(LoggerLevel.TRACE)).hasSize(1); }
protected SearchResponse scrollOneTimeWithMax(Client client,TableInJoinRequestBuilder tableRequest) { SearchResponse responseWithHits;SearchRequestBuilder scrollRequest = tableRequest.getRequestBuilder() .setScroll(new TimeValue(60000)) .setSize(MAX_RESULTS_ON_ONE_FETCH); boolean ordered = tableRequest.getOriginalSelect().isOrderdSelect(); if(!ordered) scrollRequest.addSort(FieldSortBuilder.DOC_FIELD_NAME, SortOrder.ASC); responseWithHits = scrollRequest.get(); //on ordered select - not using SCAN , elastic returns hits on first scroll //es5.0 elastic always return docs on scan // if(!ordered) // responseWithHits = client.prepareSearchScroll(responseWithHits.getScrollId()).setScroll(new TimeValue(600000)).get(); return responseWithHits; }
public long countDocuments(IndexType indexType) { return client().prepareSearch(indexType).setSize(0).get().getHits().getTotalHits(); }
@Test public void search() { es.client().prepareSearch(FakeIndexDefinition.INDEX).get(); }
public SearchIdResult<String> search(ProjectMeasuresQuery query, SearchOptions searchOptions) { SearchRequestBuilder requestBuilder = client .prepareSearch(INDEX_TYPE_PROJECT_MEASURES) .setFetchSource(false) .setFrom(searchOptions.getOffset()) .setSize(searchOptions.getLimit()); BoolQueryBuilder esFilter = boolQuery(); Map<String, QueryBuilder> filters = createFilters(query); filters.values().forEach(esFilter::must); requestBuilder.setQuery(esFilter); addFacets(requestBuilder, searchOptions, filters, query); addSort(query, requestBuilder); return new SearchIdResult<>(requestBuilder.get(), id -> id, system2.getDefaultTimeZone()); }
private void assertMemberInIndex(String organizationUuid, UserDto user, boolean isMember) { SearchRequestBuilder request = es.client().prepareSearch(UserIndexDefinition.INDEX_TYPE_USER) .setQuery(boolQuery() .must(termQuery(FIELD_ORGANIZATION_UUIDS, organizationUuid)) .must(termQuery(FIELD_UUID, user.getUuid()))); if (isMember) { assertThat(request.get().getHits().getHits()).hasSize(1); } else { assertThat(request.get().getHits().getHits()).isEmpty(); } }
public void append4Update(BulkRequestBuilder bulkRequestBuilder, ESMapping mapping, Object pkVal, Map<String, Object> esFieldData) { if (mapping.get_id() != null) { bulkRequestBuilder .add(transportClient.prepareUpdate(mapping.get_index(), mapping.get_type(), pkVal.toString()) .setDoc(esFieldData)); } else { SearchResponse response = transportClient.prepareSearch(mapping.get_index()) .setTypes(mapping.get_type()) .setQuery(QueryBuilders.termQuery(mapping.getPk(), pkVal)) .setSize(MAX_BATCH_SIZE) .get(); for (SearchHit hit : response.getHits()) { bulkRequestBuilder .add(transportClient.prepareUpdate(mapping.get_index(), mapping.get_type(), hit.getId()) .setDoc(esFieldData)); } } }
private void assertThatComponentHasName(ComponentDto component, String expectedName) { SearchHit[] hits = es.client() .prepareSearch(INDEX_TYPE_COMPONENT) .setQuery(matchQuery(SORTABLE_ANALYZER.subField(FIELD_NAME), expectedName)) .get() .getHits() .getHits(); assertThat(hits) .extracting(SearchHit::getId) .contains(component.uuid()); } }
private void assertThatProjectHasTag(ComponentDto project, String expectedTag) { SearchRequestBuilder request = es.client() .prepareSearch(INDEX_TYPE_PROJECT_MEASURES) .setQuery(boolQuery().filter(termQuery(FIELD_TAGS, expectedTag))); assertThat(request.get().getHits().getHits()) .extracting(SearchHit::getId) .contains(project.uuid()); }
@Test public void trace_logs() { logTester.setLevel(LoggerLevel.TRACE); SearchResponse response = es.client().prepareSearch(FakeIndexDefinition.INDEX) .setScroll(TimeValue.timeValueMinutes(1)) .get(); logTester.clear(); es.client().prepareSearchScroll(response.getScrollId()).get(); assertThat(logTester.logs()).hasSize(1); }
@Test public void no_trace_logs() { logTester.setLevel(LoggerLevel.DEBUG); SearchResponse response = es.client().prepareSearch(FakeIndexDefinition.INDEX) .setScroll(TimeValue.timeValueMinutes(1)) .get(); logTester.clear(); es.client().prepareSearchScroll(response.getScrollId()).get(); assertThat(logTester.logs()).isEmpty(); }