private void addProjectDeletionToBulkIndexer(BulkIndexer bulkIndexer, String projectUuid) { SearchRequestBuilder searchRequest = esClient.prepareSearch(INDEX_TYPE_COMPONENT) .setQuery(QueryBuilders.termQuery(ComponentIndexDefinition.FIELD_PROJECT_UUID, projectUuid)) .setRouting(projectUuid); bulkIndexer.addDeletion(searchRequest); }
@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); }
/** * Completely remove a index with all types */ public void clearIndex(IndexType indexType) { BulkIndexer.delete(esClient, indexType, esClient.prepareSearch(indexType.getIndex()).setQuery(matchAllQuery())); }
@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(); }
@Test public void to_string() { assertThat(es.client().prepareSearch(FakeIndexDefinition.INDEX).setTypes(FakeIndexDefinition.TYPE).toString()).contains("ES search request '").contains( "' on indices '[fakes]' on types '[fake]'"); assertThat(es.client().prepareSearch(FakeIndexDefinition.INDEX).toString()).contains("ES search request '").contains("' on indices '[fakes]'"); assertThat(es.client().prepareSearch(new IndexType[0]).toString()).contains("ES search request"); }
@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]'"); } }
@Test public void execute_should_throw_an_unsupported_operation_exception() { try { es.client().prepareSearch(FakeIndexDefinition.INDEX).execute(); fail(); } catch (Exception e) { assertThat(e).isInstanceOf(UnsupportedOperationException.class).hasMessage("execute() should not be called as it's used for asynchronous"); } } }
@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"); } }
private void addProjectDeletionToBulkIndexer(BulkIndexer bulkIndexer, String projectUuid) { SearchRequestBuilder search = esClient.prepareSearch(INDEX_TYPE_ISSUE) .setRouting(projectUuid) .setQuery(boolQuery().must(termQuery(FIELD_ISSUE_PROJECT_UUID, projectUuid))); bulkIndexer.addDeletion(search); }
@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); }
@Override protected void after() { if (isCustom) { // delete non-core indices String[] existingIndices = SHARED_NODE.client().admin().indices().prepareGetIndex().get().getIndices(); Stream.of(existingIndices) .filter(i -> !CORE_INDICES_NAMES.contains(i)) .forEach(EsTester::deleteIndexIfExists); } BulkIndexer.delete(client(), new IndexType("_all", ""), client().prepareSearch("_all").setQuery(matchAllQuery())); }
public long countDocuments(IndexType indexType) { return client().prepareSearch(indexType).setSize(0).get().getHits().getTotalHits(); }
public boolean hasAccessToProject(String projectUuid) { SearchHits hits = esClient.prepareSearch(FOO_INDEX) .setTypes(FOO_TYPE) .setQuery(QueryBuilders.boolQuery() .must(QueryBuilders.termQuery(FooIndexDefinition.FIELD_PROJECT_UUID, projectUuid)) .filter(authorizationTypeSupport.createQueryFilter())) .get() .getHits(); List<String> names = Arrays.stream(hits.hits()) .map(h -> h.getSource().get(FooIndexDefinition.FIELD_NAME).toString()) .collect(MoreCollectors.toList()); return names.size() == 2 && names.contains("bar") && names.contains("baz"); } }
@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()); }
@Test public void bulk_delete() { int max = 500; int removeFrom = 200; FakeDoc[] docs = new FakeDoc[max]; for (int i = 0; i < max; i++) { docs[i] = FakeIndexDefinition.newDoc(i); } es.putDocuments(INDEX_TYPE_FAKE, docs); assertThat(count()).isEqualTo(max); SearchRequestBuilder req = es.client().prepareSearch(INDEX_TYPE_FAKE) .setQuery(QueryBuilders.rangeQuery(FakeIndexDefinition.INT_FIELD).gte(removeFrom)); BulkIndexer.delete(es.client(), INDEX_TYPE_FAKE, req); assertThat(count()).isEqualTo(removeFrom); }
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 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(); } }
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()); }