if (typeName != null) request.setTypes(typeName); request .setExplain(explain) .setSearchType(SearchType.QUERY_THEN_FETCH) .setQuery(queryBuilder)
@GET @Path("shops") @Produces(MediaType.APPLICATION_JSON) public Response getShop(@QueryParam("offset") @DefaultValue("0") Integer offset, @QueryParam("number") @DefaultValue("25") Integer number) { Client client = getSearchEngine().getClient(); SearchResponse response = client.prepareSearch("entities").setSearchType(SearchType.DFS_QUERY_THEN_FETCH) .setFrom(offset) .setSize(number) .setTypes("tenant") .setExplain(false) .execute() .actionGet(); List<Map<String, Object>> result = new ArrayList<Map<String, Object>>(); for (SearchHit hit : response.getHits()) { result.add(hit.getSource()); } String thisAPIHref = urlHelper.getContextPlatformURL("/marketplace/api/shops/?number=" + number + "&offset=" + offset).toString(); ResultSetRepresentation<List<Map<String, Object>>> resultSet = new ResultSetRepresentation(thisAPIHref, number, offset, result, Long.valueOf(response.getHits().getTotalHits()).intValue()); return Response.ok(resultSet).build(); }
public List<String> matchStringQuery(String query){ SearchResponse response = client.prepareSearch(this.indexName) .setSize(numDocs). setTrackScores(false). setFetchSource(false).setExplain(false) .setQuery(QueryBuilders.wrapperQuery(query)).execute().actionGet(); List<String> list = new ArrayList<>(response.getHits().getHits().length); for (SearchHit searchHit : response.getHits()) { list.add(searchHit.getId()); } return list; }
public List<String> getAllDocs(){ SearchResponse response = client.prepareSearch(indexName).setSize(this.numDocs) //TODO set no fields equivalent .setTrackScores(false) .setExplain(false).setFetchSource(false). setQuery(QueryBuilders.matchAllQuery()). execute().actionGet(); List<String> list = new ArrayList<>(response.getHits().getHits().length); for (SearchHit searchHit : response.getHits()) { list.add(searchHit.getId()); } return list; }
@Override public List<Map<String, Object>> search(String term, List<Class<? extends Entity>> entityTypes) throws SearchEngineException { SearchResponse response = client.prepareSearch("entities").setSearchType(SearchType.DFS_QUERY_THEN_FETCH) .setQuery(queryString(term)) .setFrom(0).setSize(10).setExplain(false).execute().actionGet(); List<Map<String, Object>> result = new ArrayList<Map<String, Object>>(); for (SearchHit hit : response.getHits()) { result.add(hit.getSource()); } return result; }
@GET @Path("shops/{shop}") @Produces(MediaType.APPLICATION_JSON) public Response getShop(@PathParam("shop") String shop) { Client client = getSearchEngine().getClient(); SearchResponse response = client.prepareSearch("entities").setSearchType(SearchType.DFS_QUERY_THEN_FETCH) .setFrom(0) .setSize(1) .setTypes("tenant") .setQuery(QueryBuilders.termQuery("slug", shop)) .setExplain(false) .execute() .actionGet(); Map<String, Object> result = Maps.newHashMap(); for (SearchHit hit : response.getHits()) { result = hit.getSource(); break; } return Response.ok(result).build(); }
public PageableList<NamedQuery> filter(String prefix) { BoolQueryBuilder filter = QueryBuilders.boolQuery(); if (!Strings.isNullOrEmpty(prefix)) { filter.must(QueryBuilders .prefixQuery("name", prefix.trim())); } SearchResponse response = getConnection().getClient().prepareSearch(getIndex()) .setTypes(getType()) .setPostFilter(filter) .setSize(100) .setFetchSource(true) .setExplain(false) .execute() .actionGet(); List<NamedQuery> items = Arrays.stream(response.getHits().getHits()) .map(SearchHit::getSource) .filter(Objects::nonNull) .map(this::mapToNamedQuery) .collect(Collectors.toList()); return PageableList.create(items, response.getHits().getTotalHits()); }
public PageableList<HttpSourceTest> filter(String prefix) { BoolQueryBuilder filter = QueryBuilders.boolQuery(); if (!Strings.isNullOrEmpty(prefix)) { filter.must(QueryBuilders .prefixQuery("url", prefix.trim())); } SearchResponse response = getConnection().getClient().prepareSearch(getIndex()) .setTypes(getType()) .setPostFilter(filter) .setSize(100) .setFetchSource(true) .setExplain(false) .execute() .actionGet(); List<HttpSourceTest> items = Arrays.stream(response.getHits().getHits()) .map(SearchHit::getSource) .filter(Objects::nonNull) .map(this::mapToHttpSourceTest) .collect(Collectors.toList()); return PageableList.create(items, response.getHits().getTotalHits()); }
public SearchResponse submitQuery(String query){ SearchResponse response = client.prepareSearch(this.indexName) .setSize(numDocs) .setTrackScores(false) .setExplain(false).setFetchSource(false) .setQuery(QueryBuilders.wrapperQuery(query)).execute().actionGet(); return response; }
public List<String> suggest(String prefix) { CompletionSuggestionBuilder suggestionBuilder = new CompletionSuggestionBuilder("name_suggest") .prefix(prefix); SearchResponse response = getConnection().getClient().prepareSearch(getIndex()) .setTypes(getType()) .suggest(new SuggestBuilder().addSuggestion("suggestion", suggestionBuilder)) .setSize(100) .setFetchSource(true) .setExplain(false) .execute() .actionGet(); return response.getSuggest().filter(CompletionSuggestion.class).stream() .flatMap(s -> s.getOptions().stream()) .sorted(Comparator.comparingDouble(Suggest.Suggestion.Entry.Option::getScore)) .map(Suggest.Suggestion.Entry.Option::getText) .map(Text::toString) .collect(Collectors.toList()); }
public List<HttpArticle> findByStatus(String status, int count) { BoolQueryBuilder filter = QueryBuilders.boolQuery() .must(QueryBuilders.termQuery(STATUS_FIELD, String.valueOf(status))); SearchResponse response = getConnection().getClient() .prepareSearch(getIndex()) .setTypes(getType()) .setSearchType(SearchType.DEFAULT) .setPostFilter(filter) .addSort(CREATED_FIELD, SortOrder.DESC) .setSize(count) .setFetchSource(true) .setExplain(false) .execute() .actionGet(); SearchHits hits = response.getHits(); return Arrays.stream(hits.getHits()) .map(SearchHit::getSource) .map(this::mapToHttpArticle) .collect(Collectors.toList()); }
public List<HttpSource> findEnabledSources() { BoolQueryBuilder filter = QueryBuilders.boolQuery() .must(QueryBuilders.termQuery("enabled", true)); SearchResponse response = getConnection().getClient() .prepareSearch(getIndex()) .setTypes(getType()) .setSearchType(SearchType.DEFAULT) .setPostFilter(filter) .addSort("updated", SortOrder.ASC) .setSize(10000) .setFetchSource(true) .setExplain(false) .execute() .actionGet(); SearchHits hits = response.getHits(); return Arrays.stream(hits.getHits()) .map(SearchHit::sourceAsMap) .map(this::mapToHttpSource) .collect(Collectors.toList()); }
public ListMatrix<ElasticsearchSample> search(String query) { ListMatrix<ElasticsearchSample> list = new DefaultListMatrix<ElasticsearchSample>(); QueryBuilder qb = QueryBuilders.queryString(query).defaultOperator(Operator.AND); SearchResponse response = client.prepareSearch(index).setNoFields().setTypes(type) .setSearchType(SearchType.QUERY_AND_FETCH).setQuery(qb).setFrom(0).setSize(10).setExplain(true) .execute().actionGet(); SearchHit[] results = response.getHits().getHits(); for (SearchHit hit : results) { ElasticsearchSample sample = new ElasticsearchSample(this, hit); list.add(sample); } return list; }
public SearchResponse match(String field, String matchQuery, String filterQuery, int size ){ QueryBuilder queryBuilder = QueryBuilders.matchQuery(field,matchQuery); SearchResponse response = client.prepareSearch(indexName).setSize(size) .setTrackScores(false). setFetchSource(false).setExplain(false).setFetchSource(false). setQuery(QueryBuilders.boolQuery().must(queryBuilder).filter(QueryBuilders.wrapperQuery(filterQuery))) .execute().actionGet(); return response; }
/** * Set SearchRequestBuilder parameters specific to current window. * * @see org.apache.apex.malhar.contrib.elasticsearch.ElasticSearchMapInputOperator#getSearchRequestBuilder() */ @Override protected SearchRequestBuilder getSearchRequestBuilder() { long time = System.currentTimeMillis(); return searchRequestBuilder.setPostFilter(FilterBuilders.rangeFilter(POST_DATE).from(testStartTime).to(time)) // Filter .setSize(15).setExplain(false); } };
public SearchResponse spanNearFrequency(Ngram ngram, String filterQuery, int size){ if (ngram.getTerms().length == 0) { throw new IllegalArgumentException("No term for span"); } int slop = ngram.getSlop(); PhraseCountQueryBuilder queryBuilder = new PhraseCountQueryBuilder(ngram.getField(), slop, ngram.isInOrder(), false, ngram.getTerms()); SearchResponse response = client.prepareSearch(indexName).setSize(size) .setTrackScores(false). setFetchSource(false).setExplain(false).setFetchSource(false). setQuery(QueryBuilders.boolQuery().must(queryBuilder).filter(QueryBuilders.wrapperQuery(filterQuery))) .execute().actionGet(); return response; }
@SuppressWarnings("PMD.NcssMethodCount") SearchResponse startScroll() { //https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/java-search-scrolling.html SearchRequestBuilder searchRequestBuilder = client.prepareSearch(indexName); searchRequestBuilder.addSort(FieldSortBuilder.DOC_FIELD_NAME, SortOrder.ASC) .setQuery(createQuery()) .setSize(BATCH_SIZE) .setExplain(false) .setFetchSource(false) .setVersion(true) .setScroll(TimeValue.timeValueMinutes(SCROLL_TIME_IN_MINUTES)); return searchRequestBuilder.execute().actionGet(); }
public SearchResponse spanNear(Ngram ngram, int size){ String field = ngram.getField(); int slop = ngram.getSlop(); boolean inOrder = ngram.isInOrder(); SpanNearQueryBuilder queryBuilder = QueryBuilders.spanNearQuery(new SpanTermQueryBuilder(field, ngram.getTerms()[0]), slop); for (int i = 1; i < ngram.getTerms().length; i++){ queryBuilder.addClause(new SpanTermQueryBuilder(field, ngram.getTerms()[1])); } queryBuilder.inOrder(inOrder); SearchResponse response = client.prepareSearch(indexName).setSize(size) .setTrackScores(false) .setFetchSource(false).setExplain(false).setFetchSource(false). setQuery(ngram.getTerms().length > 1 ? queryBuilder : QueryBuilders.matchPhraseQuery(field, ngram.getTerms()[0]).slop(slop)) .execute().actionGet(); System.out.println(response.getHits().getTotalHits()); return response; }
public SearchResponse spanNear(Ngram ngram){ if (ngram.getTerms().length == 0) { throw new IllegalStateException("No terms found for span"); } String field = ngram.getField(); int slop = ngram.getSlop(); boolean inOrder = ngram.isInOrder(); SpanNearQueryBuilder queryBuilder = QueryBuilders.spanNearQuery(new SpanTermQueryBuilder(field, ngram.getTerms()[0]), slop); for (int i = 1; i < ngram.getTerms().length; i++){ queryBuilder.addClause(new SpanTermQueryBuilder(field, ngram.getTerms()[i])); } queryBuilder.inOrder(inOrder); SearchResponse response = client.prepareSearch(indexName).setSize(this.numDocs). setTrackScores(false). setFetchSource(false).setExplain(false).setFetchSource(false). setQuery(ngram.getTerms().length > 1 ? queryBuilder : QueryBuilders.matchPhraseQuery(field, ngram.getTerms()[0]).slop(slop)) .execute().actionGet(); return response; }
public SearchResponse spanNear(Ngram ngram, String filterQuery, int size){ if (ngram.getTerms().length == 0) { throw new IllegalArgumentException("no terms for span"); } String field = ngram.getField(); int slop = ngram.getSlop(); boolean inOrder = ngram.isInOrder(); SpanNearQueryBuilder queryBuilder = QueryBuilders.spanNearQuery(new SpanTermQueryBuilder(field, ngram.getTerms()[0]), slop); for (int i = 1; i < ngram.getTerms().length; i++){ queryBuilder.addClause(new SpanTermQueryBuilder(field, ngram.getTerms()[i])); } queryBuilder.inOrder(inOrder); SearchResponse response = client.prepareSearch(indexName).setSize(size). setTrackScores(false). setFetchSource(false).setExplain(false).setFetchSource(false) .setQuery(QueryBuilders.boolQuery() .filter(QueryBuilders.wrapperQuery(filterQuery)) .must(ngram.getTerms().length > 1 ? queryBuilder : QueryBuilders.matchPhraseQuery(field, ngram.getTerms()[0]).slop(slop))) .execute().actionGet(); return response; }