protected SearchRequestBuilder addSearchResultFields(SearchRequestBuilder searchRequestBuilder) { if (ArrayUtils.isEmpty(searchResultFieldNames)) { return searchRequestBuilder; } return searchRequestBuilder.addFields(searchResultFieldNames); }
protected SearchRequestBuilder addSearchSuggestionResultFields(SearchRequestBuilder searchRequestBuilder) { if (ArrayUtils.isEmpty(suggestionResultFieldNames)) { return searchRequestBuilder; } return searchRequestBuilder.addFields(suggestionResultFieldNames); }
FilterBuilder filterBuilder = FilterBuilders.rangeFilter("datePublished") .gte("2016-01-01T12:30:00+01:00") .includeLower(false).includeUpper(false); MoreLikeThisQueryBuilder mltQueryBuilder = QueryBuilders.moreLikeThisQuery("title", "description", "body", "organisations","locations") .minTermFreq(2) .maxQueryTerms(25) .ids("http://xxx/doc/doc"); SearchRequestBuilder searchRequestBuilder = client.prepareSearch("index"); searchRequestBuilder.setTypes("type"); searchRequestBuilder.addFields("title","description","datePublished"); searchRequestBuilder.setQuery(mltQueryBuilder).setPostFilter(filterBuilder); searchRequestBuilder.execute().actionGet()
/** * It basically searches and returns a set of tweet ids for a given keyword. * * @param keyword * @return */ public Set<String> search(String keyword) { SearchResponse response; try { response = client.prepareSearch() .setIndices("hackaton") .setTypes("tweets") .addFields("id", "text") .setQuery(QueryBuilders.fieldQuery("text", keyword)).execute().actionGet(); } catch (Throwable e) { return new HashSet<String>(); } Set<String> result = new HashSet<String>(); for (SearchHit hit : response.getHits()) { Long id = hit.field("id").<Long>getValue(); result.add(String.valueOf(id)); } return result; }
private void lookupAnnotationFields(Map<String, Document> idMap) { QueryBuilder qb = QueryBuilders.idsQuery(getDocumentType()).addIds(idMap.keySet()); SearchRequestBuilder srb = getClient().prepareSearch(getIndexName()) .addFields("*") .setQuery(qb) .setSize(idMap.size()); LOGGER.debug("Annotation field lookup query: {}", srb.toString()); SearchResponse response = srb.execute().actionGet(); for (SearchHit hit : response.getHits().getHits()) { populateAnnotationFields(hit, idMap.get(hit.getId())); } }
/** * Get all indexed resources for a site * * @param siteId Site containing indexed resources * @return a collection of resource references or an empty collection if no resource was found */ protected Collection<String> getResourceNames(String siteId) { getLog().debug("Obtaining indexed elements for site: '" + siteId + "'"); SearchResponse response = client.prepareSearch(indexName) .setSearchType(SearchType.QUERY_THEN_FETCH) .setQuery(termQuery(SearchService.FIELD_SITEID, siteId)) .setTypes(indexedDocumentType) .setSize(Integer.MAX_VALUE) .addFields(SearchService.FIELD_REFERENCE) .execute() .actionGet(); Collection<String> resourceNames = new ArrayList<String>(); for (SearchHit hit : response.getHits().hits()) { resourceNames.add(getFieldFromSearchHit(SearchService.FIELD_REFERENCE, hit)); } return resourceNames; }
protected SearchResponse search(String collectionName, QueryBuilder query) { final CountResponse count = count(collectionName, query); return getClient().prepareSearch().setTypes(collectionName) .setQuery(query) .setSize((int) count.getCount()) .addFields("id") .execute() .actionGet(initTimeout); }
protected SearchResponse search(String collectionName, QueryBuilder query) { final CountResponse count = count(collectionName, query); return getClient().prepareSearch().setTypes(collectionName) .setQuery(query) .setSize((int) count.getCount()) .addFields("id") .execute() .actionGet(initTimeout); }
private SearchRequestBuilder getSearchRequestBuilder(Client client, Collection<MailboxId> users, SearchQuery query, Optional<Long> limit) { return query.getSorts() .stream() .reduce( client.prepareSearch(aliasName.getValue()) .setTypes(typeName.getValue()) .setScroll(TIMEOUT) .addFields(JsonMessageConstants.UID, JsonMessageConstants.MAILBOX_ID, JsonMessageConstants.MESSAGE_ID) .setQuery(queryConverter.from(users, query)) .setSize(computeRequiredSize(limit)), (searchBuilder, sort) -> searchBuilder.addSort(SortConverter.convertSort(sort)), (partialResult1, partialResult2) -> partialResult1); }
protected SearchRequestBuilder addFindContentQueueRequestParams(SearchRequestBuilder searchRequestBuilder) { return searchRequestBuilder .setQuery(matchAllQuery()) .setTypes(indexedDocumentType) .setPostFilter( orFilter( missingFilter(SearchService.FIELD_INDEXED), termFilter(SearchService.FIELD_INDEXED, false))) .setSize(contentIndexBatchSize) .addFields(SearchService.FIELD_REFERENCE, SearchService.FIELD_SITEID); }
public KeyIterator(ElasticsearchIndex index) { this.index = index; MatchAllQueryBuilder query = QueryBuilders.matchAllQuery(); scrollResp = index.getClient().prepareSearch(index.getIndex()).setTypes(index.getType()) .addFields(new String[] {}).setSearchType(SearchType.SCAN) .setScroll(new TimeValue(ElasticsearchIndex.SCROLLTIMEOUT)).setQuery(query) .setSize(ElasticsearchIndex.SCROLLSIZE).execute().actionGet(); scrollResp = index.getClient().prepareSearchScroll(scrollResp.getScrollId()) .setScroll(new TimeValue(ElasticsearchIndex.SCROLLTIMEOUT)).execute().actionGet(); iterator = scrollResp.getHits().iterator(); }
public SearchRequestBuilder prepareSearch(QuotaQuery query) { SearchRequestBuilder searchRequestBuilder = client.prepareSearch(readAlias.getValue()) .setTypes(QUOTA_RATIO_TYPE.getValue()) .setScroll(TIMEOUT) .addFields(USER) .setQuery(quotaQueryConverter.from(query)); query.getLimit() .getValue() .ifPresent(searchRequestBuilder::setSize); searchRequestBuilder.addSort( SortBuilders.fieldSort(USER) .order(SortOrder.ASC)); return searchRequestBuilder; }
.must(userQueryBuilder) .filter(getLastAccessedFilterQuery())) .addFields(userIdField).setSize(scrollSize) .execute().actionGet(); long totalHits = response.getHits().getTotalHits();
.setScroll(scroll).addFields(fields); if (fromType != null && fromType.trim().length() > 0) { builder.setTypes(fromType.split(","));
.must(QueryBuilders.termQuery(userIdField, userID)) .filter(getLastAccessedFilterQuery())) .addFields(valueField) .addSort(timestampField, SortOrder.DESC).setSize(1) .execute().actionGet();
protected SearchResponse getPreferenceSearchResponse( final String targetField, final long targetID, final String... resultFields) { try { return client .prepareSearch(preferenceIndex) .setTypes(preferenceType) .setQuery(QueryBuilders.boolQuery() .must(QueryBuilders.termQuery(targetField, targetID)) .filter(getLastAccessedFilterQuery())) .addFields(resultFields) .addSort(resultFields[0], SortOrder.ASC) .addSort(timestampField, SortOrder.DESC) .setSize(maxPreferenceSize).execute().actionGet(); } catch (final ElasticsearchException e) { throw new TasteException("Failed to get the preference by " + targetField + ":" + targetID, e); } }
.must(QueryBuilders.termQuery(userIdField, userID)) .filter(getLastAccessedFilterQuery())) .addFields(timestampField) .addSort(timestampField, SortOrder.DESC).setSize(1) .execute().actionGet();
itemID)) .filter(getLastAccessedFilterQuery())) .addFields("_id").setSize(scrollSize).execute() .actionGet(); } else {
private SearchRequestBuilder prepareSearch(Query query){ Assert.notNull(query.getIndices(), "No index defined for Query"); Assert.notNull(query.getTypes(), "No type defined for Query"); int startRecord = 0; SearchRequestBuilder searchRequestBuilder = client.prepareSearch(toArray(query.getIndices())) .setSearchType(DFS_QUERY_THEN_FETCH) .setTypes(toArray(query.getTypes())); if(query.getPageable() != null){ startRecord = query.getPageable().getPageNumber() * query.getPageable().getPageSize(); searchRequestBuilder.setSize(query.getPageable().getPageSize()); } searchRequestBuilder.setFrom(startRecord); if(!query.getFields().isEmpty()){ searchRequestBuilder.addFields(toArray(query.getFields())); } if(query.getSort() != null){ for(Sort.Order order : query.getSort()){ searchRequestBuilder.addSort(order.getProperty(), order.getDirection() == Sort.Direction.DESC? SortOrder.DESC : SortOrder.ASC); } } return searchRequestBuilder; }
searchCriteria.getFrom(), searchCriteria.getSize()); requestBuilder.addFields(SearchDocumentFieldName.productQueryFields);