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; }
private SearchResponse executeSearch(final QueryBuilder query, final List<AggregationBuilder> aggregations, final String[] searchableIndexes, @Nullable final QueryBuilder postFilter) { checkNotNull(query); checkNotNull(aggregations); checkNotNull(searchableIndexes); SearchRequestBuilder searchRequestBuilder = client.get().prepareSearch(searchableIndexes) .setTypes(TYPE) .setQuery(query) .setFrom(0) .setSize(0) .setProfile(profile) .setTrackScores(true); for (AggregationBuilder aggregation : aggregations) { searchRequestBuilder.addAggregation(aggregation); } if (postFilter != null) { searchRequestBuilder.setPostFilter(postFilter); } SearchResponse searchResponse = searchRequestBuilder.execute().actionGet(); if (profile) { logProfileResults(searchResponse); } return searchResponse; }
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; }
setTrackScores(false). setFetchSource(false).setExplain(false).setFetchSource(false). setQuery(QueryBuilders.constantScoreQuery(
private SearchResponse searchSentMessages(int limit, SortOrder sort, QueryBuilder query) { return elasticClient.prepareSearch(SchemaManager.SENT_ALIAS_NAME) .setTypes(SchemaManager.SENT_TYPE) .setTrackScores(true) .setQuery(query) .addSort(TIMESTAMP_SECONDS, sort) .setSize(limit) .execute() .actionGet(); }
private SearchResponse searchPublishedMessages(int limit, QueryBuilder query) throws InterruptedException, ExecutionException { return elasticClient.prepareSearch(SchemaManager.PUBLISHED_ALIAS_NAME) .setTypes(SchemaManager.PUBLISHED_TYPE) .setTrackScores(true) .setQuery(query) .addSort(TIMESTAMP_SECONDS, SortOrder.ASC) .setSize(limit) .execute() .get(); }
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; }
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; }
/** * simple match * use whitespace analyzer * @param field * @param phrase already stemmed * @param operator and /or * @return */ public SearchResponse match(String field, String phrase, Operator operator){ SearchResponse response = client.prepareSearch(indexName).setSize(this.numDocs). setTrackScores(false). setFetchSource(false).setExplain(false).setFetchSource(false). setQuery(QueryBuilders.matchQuery(field, phrase).operator(operator) .analyzer("whitespace")). execute().actionGet(); return response; // debug // XContentBuilder builder = XContentFactory.jsonBuilder(); // builder.startObject(); // System.out.println(response.toXContent(builder, ToXContent.EMPTY_PARAMS)); // builder.endObject(); // System.out.println(builder.string()); }
/** * phrase query * use whitespace analyzer in the query * @param field * @param phrase already stemmed * @param slop * @return */ public SearchResponse matchPhrase(String field, String phrase, int slop){ SearchResponse response = client.prepareSearch(indexName).setSize(this.numDocs) .setTrackScores(false). setFetchSource(false).setExplain(false).setFetchSource(false). setQuery(QueryBuilders.matchPhraseQuery(field, phrase).slop(slop) .analyzer("whitespace")). execute().actionGet(); return response; // debug // XContentBuilder builder = XContentFactory.jsonBuilder(); // builder.startObject(); // System.out.println(response.toXContent(builder, ToXContent.EMPTY_PARAMS)); // builder.endObject(); // System.out.println(builder.string()); }
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; }
/** * simple match * use whitespace analyzer * @param field * @param phrase already stemmed * @param ids * @param operator * @return */ public SearchResponse match(String field, String phrase, String[] ids, Operator operator){ IdsQueryBuilder idsFilterBuilder = new IdsQueryBuilder(documentType); idsFilterBuilder.addIds(ids); SearchResponse response = client.prepareSearch(indexName).setSize(ids.length). setTrackScores(false). setFetchSource(false).setExplain(false).setFetchSource(false). setQuery(QueryBuilders.boolQuery() .should(QueryBuilders.matchQuery(field, phrase) .operator(operator).analyzer("whitespace")) .must(idsFilterBuilder)) .execute().actionGet(); return response; }
public SearchResponse minimumShouldMatch(List<String> terms, String field, int percentage, int size, String docFilter){ BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery(); for (String term: terms){ queryBuilder.should(QueryBuilders.constantScoreQuery(QueryBuilders.matchQuery(field, term))); } queryBuilder.minimumShouldMatch(""+percentage+"%"); //debug // XContentBuilder builder = XContentFactory.jsonBuilder(); // // builder.startObject(); // queryBuilder.toXContent(builder, ToXContent.EMPTY_PARAMS); // builder.endObject(); // System.out.println(builder.string()); SearchResponse response = client.prepareSearch(indexName).setSize(size) .setTrackScores(false) .setExplain(false).setFetchSource(false). setQuery( QueryBuilders.boolQuery() .filter(QueryBuilders.wrapperQuery(docFilter)) .must(queryBuilder)) .execute().actionGet(); return response; }
.setTrackScores(false) .setFetchSource(false).setExplain(false).setFetchSource(false). setQuery(QueryBuilders.boolQuery().must(QueryBuilders.matchPhraseQuery(field, phrase)
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; }
setTrackScores(false). setFetchSource(false).setExplain(false).setFetchSource(false). setQuery(QueryBuilders.
setTrackScores(false). setFetchSource(false).setExplain(false).setFetchSource(false). setQuery(spanNotQueryBuilder)
setTrackScores(false). setFetchSource(false).setExplain(false).setFetchSource(false). setQuery(QueryBuilders.boolQuery()