/** * Optimize scolling, by specifying document sorting. * See https://www.elastic.co/guide/en/elasticsearch/reference/2.4/search-request-scroll.html#search-request-scroll */ public static void optimizeScrollRequest(SearchRequestBuilder esSearch) { esSearch.addSort("_doc", SortOrder.ASC); }
/** * Customization hook to modify a generated {@link SearchRequest} prior to its execution. Eg. by setting the * {@link SearchRequest#indicesOptions(IndicesOptions) indices options} if applicable. * * @param request the generated {@link SearchRequest}. * @return never {@literal null}. */ protected SearchRequest prepareSearchRequest(SearchRequest request) { if (indicesOptions == null) { return request; } return request.indicesOptions(indicesOptions); }
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); }
@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); }
/** * Set indices and types to the search request. */ private void setIndicesAndTypes() { request.setIndices(query.getIndexArr()); String[] typeArr = query.getTypeArr(); if (typeArr != null) { request.setTypes(typeArr); } }
/** * Create filters based on * the Where clause. * * @param where the 'WHERE' part of the SQL query. * @throws SqlParseException */ private void setWhere(Where where) throws SqlParseException { if (where != null) { QueryBuilder whereQuery = QueryMaker.explan(where,this.select.isQuery); request.setQuery(whereQuery); } }
protected void updateMetaSearchResults( SearchResponse searchResponse) { this.metaResults.addSuccessfulShards(searchResponse.getSuccessfulShards()); this.metaResults.addFailedShards(searchResponse.getFailedShards()); this.metaResults.addTotalNumOfShards(searchResponse.getTotalShards()); this.metaResults.updateTimeOut(searchResponse.isTimedOut()); }
private static String getQueryParameters(SearchRequest request) { final StringBuilder queryParams = new StringBuilder(); if (request.routing() != null) { queryParams.append("routing=").append(request.routing()); } if (request.searchType() != SearchType.DEFAULT) { queryParams.append("search_type=").append(request.searchType().name().toLowerCase()); } if (queryParams.length() > 0) { queryParams.insert(0, '?'); } return queryParams.toString(); }
public SearchScrollRequestBuilder prepareSearchScroll(String scrollId) { return client.prepareSearchScroll(scrollId) .setScroll(new TimeValue(scrollTimeout.toMillis())); }
private static void addRatingFacet(SearchRequestBuilder esSearch, String metricKey, StickyFacetBuilder facetBuilder) { esSearch.addAggregation(createStickyFacet(metricKey, facetBuilder, createRatingFacet(metricKey))); }
private void buildMulti() { multi = new MultiSearchRequest(); multi.add(firstTable.getRequestBuilder()); multi.add(secondTable.getRequestBuilder()); }
@Override public String explain() { try { SearchRequestBuilder source = deleteByQueryRequestBuilder.source(); return source.toString(); } catch (Exception e) { e.printStackTrace(); } return null; }
/** * Set indices and types to the search request. */ private void setIndicesAndTypes() { request.setIndices(query.getIndexArr()); String[] typeArr = query.getTypeArr(); if (typeArr != null) { request.setTypes(typeArr); } }
/** * Create filters or queries based on the Where clause. * * @param where * the 'WHERE' part of the SQL query. * @throws SqlParseException */ private void setWhere(Where where) throws SqlParseException { if (where != null) { BoolQueryBuilder boolQuery = QueryMaker.explan(where,this.select.isQuery); request.setQuery(boolQuery); } }
private static void addRangeFacet(SearchRequestBuilder esSearch, String metricKey, StickyFacetBuilder facetBuilder, Double... thresholds) { esSearch.addAggregation(createStickyFacet(metricKey, facetBuilder, createRangeFacet(metricKey, thresholds))); }