Search in sources :

Example 1 with SearchConfig

use of org.graylog.plugins.views.search.engine.SearchConfig in project graylog2-server by Graylog2.

the class ElasticsearchBackendUsingCorrectIndicesTest method queryDoesNotFallBackToUsingAllIndicesWhenNoIndexRangesAreReturned.

@Test
public void queryDoesNotFallBackToUsingAllIndicesWhenNoIndexRangesAreReturned() throws Exception {
    final ESGeneratedQueryContext context = backend.generate(job, query, new SearchConfig(Period.ZERO));
    backend.doRun(job, query, context);
    verify(client, times(1)).msearch(clientRequestCaptor.capture(), any());
    final List<SearchRequest> clientRequest = clientRequestCaptor.getValue();
    assertThat(clientRequest).isNotNull();
    assertThat(indicesOf(clientRequest).get(0)).isEqualTo("");
}
Also used : SearchRequest(org.graylog.shaded.elasticsearch7.org.elasticsearch.action.search.SearchRequest) SearchConfig(org.graylog.plugins.views.search.engine.SearchConfig) Test(org.junit.Test)

Example 2 with SearchConfig

use of org.graylog.plugins.views.search.engine.SearchConfig in project graylog2-server by Graylog2.

the class ElasticsearchBackendUsingCorrectIndicesTest method queryUsesOnlyIndicesBelongingToStream.

@Test
public void queryUsesOnlyIndicesBelongingToStream() throws Exception {
    final Query query = dummyQuery(RelativeRange.create(600)).toBuilder().filter(AndFilter.and(StreamFilter.ofId("stream1"), StreamFilter.ofId("stream2"))).build();
    final Search search = dummySearch(query);
    final SearchJob job = new SearchJob("job1", search, "admin");
    final ESGeneratedQueryContext context = backend.generate(job, query, new SearchConfig(Period.ZERO));
    when(indexLookup.indexNamesForStreamsInTimeRange(ImmutableSet.of("stream1", "stream2"), RelativeRange.create(600))).thenReturn(ImmutableSet.of("index1", "index2"));
    backend.doRun(job, query, context);
    verify(client, times(1)).msearch(clientRequestCaptor.capture(), any());
    final List<SearchRequest> clientRequest = clientRequestCaptor.getValue();
    assertThat(clientRequest).isNotNull();
    assertThat(indicesOf(clientRequest).get(0)).isEqualTo("index1,index2");
}
Also used : SearchRequest(org.graylog.shaded.elasticsearch7.org.elasticsearch.action.search.SearchRequest) Query(org.graylog.plugins.views.search.Query) Search(org.graylog.plugins.views.search.Search) SearchJob(org.graylog.plugins.views.search.SearchJob) SearchConfig(org.graylog.plugins.views.search.engine.SearchConfig) Test(org.junit.Test)

Example 3 with SearchConfig

use of org.graylog.plugins.views.search.engine.SearchConfig in project graylog2-server by Graylog2.

the class ElasticsearchBackendQueryStringDecoratorsTest method generateJsonRequest.

private DocumentContext generateJsonRequest(Query query, SearchJob searchJob) {
    final ESGeneratedQueryContext context = this.backend.generate(searchJob, query, new SearchConfig(Period.ZERO));
    final String request = context.searchTypeQueries().get("testSearchtype").toString();
    return JsonPath.parse(request);
}
Also used : SearchConfig(org.graylog.plugins.views.search.engine.SearchConfig) ElasticsearchQueryString(org.graylog.plugins.views.search.elasticsearch.ElasticsearchQueryString)

Example 4 with SearchConfig

use of org.graylog.plugins.views.search.engine.SearchConfig in project graylog2-server by Graylog2.

the class ElasticsearchBackendMultiSearchTest method everySearchTypeGeneratesOneESQuery.

@Test
public void everySearchTypeGeneratesOneESQuery() throws Exception {
    final MultiSearchResponse response = TestMultisearchResponse.fromFixture("successfulMultiSearchResponse.json");
    final List<MultiSearchResponse.Item> items = Arrays.stream(response.getResponses()).collect(Collectors.toList());
    when(client.msearch(any(), any())).thenReturn(items);
    final ESGeneratedQueryContext queryContext = this.elasticsearchBackend.generate(searchJob, query, new SearchConfig(Period.ZERO));
    final List<SearchRequest> generatedRequest = run(searchJob, query, queryContext, Collections.emptySet());
    assertThat(generatedRequest).hasSize(2);
}
Also used : MultiSearchResponse(org.graylog.shaded.elasticsearch7.org.elasticsearch.action.search.MultiSearchResponse) SearchRequest(org.graylog.shaded.elasticsearch7.org.elasticsearch.action.search.SearchRequest) SearchConfig(org.graylog.plugins.views.search.engine.SearchConfig) Test(org.junit.Test)

Example 5 with SearchConfig

use of org.graylog.plugins.views.search.engine.SearchConfig in project graylog2-server by Graylog2.

the class ElasticsearchBackendMultiSearchTest method everySearchTypeGeneratesASearchSourceBuilder.

@Test
public void everySearchTypeGeneratesASearchSourceBuilder() {
    final ESGeneratedQueryContext queryContext = this.elasticsearchBackend.generate(searchJob, query, new SearchConfig(Period.ZERO));
    assertThat(queryContext.searchTypeQueries()).hasSize(2).containsOnlyKeys("pivot1", "pivot2");
}
Also used : SearchConfig(org.graylog.plugins.views.search.engine.SearchConfig) Test(org.junit.Test)

Aggregations

SearchConfig (org.graylog.plugins.views.search.engine.SearchConfig)26 Test (org.junit.Test)22 SearchJob (org.graylog.plugins.views.search.SearchJob)8 ElasticsearchQueryString (org.graylog.plugins.views.search.elasticsearch.ElasticsearchQueryString)7 Query (org.graylog.plugins.views.search.Query)6 Search (org.graylog.plugins.views.search.Search)6 SearchRequest (org.graylog.shaded.elasticsearch7.org.elasticsearch.action.search.SearchRequest)6 MultiSearchResponse (org.graylog.shaded.elasticsearch7.org.elasticsearch.action.search.MultiSearchResponse)5 QueryResult (org.graylog.plugins.views.search.QueryResult)4 PivotResult (org.graylog.plugins.views.search.searchtypes.pivot.PivotResult)4 TimeRange (org.graylog2.plugin.indexer.searches.timeranges.TimeRange)4 MultiSearch (io.searchbox.core.MultiSearch)3 ArrayList (java.util.ArrayList)2 SearchTypeError (org.graylog.plugins.views.search.errors.SearchTypeError)2 DerivedTimeRange (org.graylog.plugins.views.search.timeranges.DerivedTimeRange)2 DocumentContext (com.jayway.jsonpath.DocumentContext)1