Search in sources :

Example 11 with Search

use of io.searchbox.core.Search in project ff4j by ff4j.

the class ElasticQueryBuilder method getGroupByGroupName.

public Search getGroupByGroupName(String groupName) {
    SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
    searchSourceBuilder.query(QueryBuilders.matchQuery("group", groupName));
    return // 
    new Search.Builder(searchSourceBuilder.toString()).addIndex(// 
    connection.getIndexName()).addType(ElasticConstants.TYPE_FEATURE).build();
}
Also used : Search(io.searchbox.core.Search) SearchSourceBuilder(org.elasticsearch.search.builder.SearchSourceBuilder)

Example 12 with Search

use of io.searchbox.core.Search in project ff4j by ff4j.

the class ElasticQueryBuilder method queryPropertyByName.

public Search queryPropertyByName(String name) {
    SearchSourceBuilder source = new SearchSourceBuilder();
    source.query(QueryBuilders.matchQuery("name", name));
    return new Search.Builder(source.toString()).addIndex(connection.getIndexName()).addType(ElasticConstants.TYPE_PROPERTY).build();
}
Also used : Search(io.searchbox.core.Search) SearchSourceBuilder(org.elasticsearch.search.builder.SearchSourceBuilder)

Example 13 with Search

use of io.searchbox.core.Search in project vind by RBMHTechnology.

the class ElasticSearchClient method getQuery.

public synchronized SearchResult getQuery(String query) {
    final JestClient client = getElasticSearchClient();
    if (client != null) {
        final Search search = new Search.Builder(query).addIndex(elasticIndex).addType(// TODO extract this
        "logEntry").build();
        try {
            final SearchResult result = client.execute(search);
            log.debug("Completed total requests query. Succeeded: {}", result.isSucceeded());
            return result;
        } catch (IOException e) {
            log.error("Error in total requests query: {}", e.getMessage(), e);
            return null;
        }
    // TODO: move to async at some point
    /*client.executeAsync(search,new JestResultHandler<JestResult>() {
                @Override
                public void completed(JestResult result) {
                    log.debug("Completed total requests query. Succeeded: {}", result.isSucceeded());
                }

                @Override
                public void failed(Exception e) {
                    log.error("Error indexing content : {}", e.getMessage(), e);
                }
            });*/
    }
    return null;
}
Also used : Search(io.searchbox.core.Search) SearchResult(io.searchbox.core.SearchResult) JestClient(io.searchbox.client.JestClient) IOException(java.io.IOException)

Example 14 with Search

use of io.searchbox.core.Search in project graylog2-server by Graylog2.

the class ScrollResultES6IT method nextChunkDoesNotContainJestMetadata.

@Test
public void nextChunkDoesNotContainJestMetadata() throws IOException {
    importFixture("ScrollResultIT.json");
    final String query = SearchSourceBuilder.searchSource().query(matchAllQuery()).toString();
    final Search request = new Search.Builder(query).addIndex(INDEX_NAME).addType(IndexMapping.TYPE_MESSAGE).setParameter(Parameters.SCROLL, "1m").setParameter(Parameters.SIZE, 5).build();
    final SearchResult searchResult = JestUtils.execute(jestClient(elasticsearch), request, () -> "Exception");
    assertThat(jestClient(elasticsearch)).isNotNull();
    final ScrollResult scrollResult = new ScrollResultES6(jestClient(elasticsearch), objectMapper, searchResult, "*", Collections.singletonList("message"), -1);
    scrollResult.nextChunk().getMessages().forEach(message -> assertThat(message.getMessage().getFields()).doesNotContainKeys("es_metadata_id", "es_metadata_version"));
    scrollResult.nextChunk().getMessages().forEach(message -> assertThat(message.getMessage().getFields()).doesNotContainKeys("es_metadata_id", "es_metadata_version"));
    assertThat(scrollResult.nextChunk()).isNull();
}
Also used : ScrollResult(org.graylog2.indexer.results.ScrollResult) Search(io.searchbox.core.Search) SearchResult(io.searchbox.core.SearchResult) Test(org.junit.Test) ElasticsearchBaseTest(org.graylog.testing.elasticsearch.ElasticsearchBaseTest)

Example 15 with Search

use of io.searchbox.core.Search in project graylog2-server by Graylog2.

the class QuerySuggestionsES6 method suggest.

@Override
public SuggestionResponse suggest(SuggestionRequest req) {
    final Set<String> affectedIndices = indexLookup.indexNamesForStreamsInTimeRange(req.streams(), req.timerange());
    final SearchSourceBuilder search = new SearchSourceBuilder().query(QueryBuilders.prefixQuery(req.field(), req.input())).size(0).aggregation(AggregationBuilders.terms("fieldvalues").field(req.field()).size(req.size())).suggest(new SuggestBuilder().addSuggestion("corrections", SuggestBuilders.termSuggestion(req.field()).text(req.input()).size(req.size())));
    final Search.Builder searchBuilder = new Search.Builder(search.toString()).addType(IndexMapping.TYPE_MESSAGE).addIndex(affectedIndices.isEmpty() ? Collections.singleton("") : affectedIndices).allowNoIndices(false).ignoreUnavailable(false);
    try {
        final SearchResult result = JestUtils.execute(jestClient, searchBuilder.build(), () -> "Unable to perform aggregation: ");
        final TermsAggregation aggregation = result.getAggregations().getTermsAggregation("fieldvalues");
        final List<SuggestionEntry> entries = aggregation.getBuckets().stream().map(b -> new SuggestionEntry(b.getKeyAsString(), b.getCount())).collect(Collectors.toList());
        if (!entries.isEmpty()) {
            return SuggestionResponse.forSuggestions(req.field(), req.input(), entries, aggregation.getSumOtherDocCount());
        } else {
            final List<SuggestionEntry> corrections = Optional.of(result.getJsonObject()).map(o -> o.get("suggest")).map(o -> o.get("corrections")).map(o -> o.get(0)).map(o -> o.get("options")).map(options -> StreamSupport.stream(Spliterators.spliteratorUnknownSize(options.elements(), Spliterator.ORDERED), false).map(option -> new SuggestionEntry(option.get("text").textValue(), option.get("freq").longValue())).collect(Collectors.toList())).orElseGet(Collections::emptyList);
            return SuggestionResponse.forSuggestions(req.field(), req.input(), corrections, null);
        }
    } catch (Exception e) {
        final SuggestionError err = SuggestionError.create(e.getClass().getSimpleName(), e.getMessage());
        return SuggestionResponse.forError(req.field(), req.input(), err);
    }
}
Also used : TermsAggregation(io.searchbox.core.search.aggregation.TermsAggregation) SuggestBuilder(org.graylog.shaded.elasticsearch6.org.elasticsearch.search.suggest.SuggestBuilder) SuggestionEntry(org.graylog.plugins.views.search.engine.suggestions.SuggestionEntry) Spliterators(java.util.Spliterators) JestClient(io.searchbox.client.JestClient) Inject(javax.inject.Inject) JestUtils(org.graylog.storage.elasticsearch6.jest.JestUtils) StreamSupport(java.util.stream.StreamSupport) SuggestionResponse(org.graylog.plugins.views.search.engine.suggestions.SuggestionResponse) IndexMapping(org.graylog2.indexer.IndexMapping) SuggestionError(org.graylog.plugins.views.search.engine.suggestions.SuggestionError) QueryBuilders(org.graylog.shaded.elasticsearch6.org.elasticsearch.index.query.QueryBuilders) Search(io.searchbox.core.Search) Set(java.util.Set) SuggestBuilders(org.graylog.shaded.elasticsearch6.org.elasticsearch.search.suggest.SuggestBuilders) SuggestionRequest(org.graylog.plugins.views.search.engine.suggestions.SuggestionRequest) Collectors(java.util.stream.Collectors) List(java.util.List) QuerySuggestionsService(org.graylog.plugins.views.search.engine.QuerySuggestionsService) AggregationBuilders(org.graylog.shaded.elasticsearch6.org.elasticsearch.search.aggregations.AggregationBuilders) Optional(java.util.Optional) IndexLookup(org.graylog.plugins.views.search.elasticsearch.IndexLookup) Collections(java.util.Collections) Spliterator(java.util.Spliterator) SearchSourceBuilder(org.graylog.shaded.elasticsearch6.org.elasticsearch.search.builder.SearchSourceBuilder) SearchResult(io.searchbox.core.SearchResult) TermsAggregation(io.searchbox.core.search.aggregation.TermsAggregation) SuggestBuilder(org.graylog.shaded.elasticsearch6.org.elasticsearch.search.suggest.SuggestBuilder) SearchSourceBuilder(org.graylog.shaded.elasticsearch6.org.elasticsearch.search.builder.SearchSourceBuilder) SearchResult(io.searchbox.core.SearchResult) SearchSourceBuilder(org.graylog.shaded.elasticsearch6.org.elasticsearch.search.builder.SearchSourceBuilder) SuggestBuilder(org.graylog.shaded.elasticsearch6.org.elasticsearch.search.suggest.SuggestBuilder) SuggestionError(org.graylog.plugins.views.search.engine.suggestions.SuggestionError) Search(io.searchbox.core.Search) Collections(java.util.Collections) SuggestionEntry(org.graylog.plugins.views.search.engine.suggestions.SuggestionEntry)

Aggregations

Search (io.searchbox.core.Search)45 SearchResult (io.searchbox.core.SearchResult)24 SearchSourceBuilder (org.elasticsearch.search.builder.SearchSourceBuilder)23 Test (org.junit.Test)15 Hit (io.searchbox.core.SearchResult.Hit)12 JestClient (io.searchbox.client.JestClient)11 SearchSourceBuilder (org.graylog.shaded.elasticsearch6.org.elasticsearch.search.builder.SearchSourceBuilder)10 QueryBuilder (org.elasticsearch.index.query.QueryBuilder)9 JsonObject (com.google.gson.JsonObject)8 Map (java.util.Map)8 IOException (java.io.IOException)7 List (java.util.List)7 Set (java.util.Set)6 Collectors (java.util.stream.Collectors)6 Inject (javax.inject.Inject)6 IndexMapping (org.graylog2.indexer.IndexMapping)6 Optional (java.util.Optional)5 BoolQueryBuilder (org.graylog.shaded.elasticsearch6.org.elasticsearch.index.query.BoolQueryBuilder)5 QueryBuilder (org.graylog.shaded.elasticsearch6.org.elasticsearch.index.query.QueryBuilder)5 QueryBuilders (org.graylog.shaded.elasticsearch6.org.elasticsearch.index.query.QueryBuilders)5