public static ToXContent fullParamer(MatchPhraseQueryBuilder query, Paramer paramer) { if (paramer.analysis != null) { query.analyzer(paramer.analysis); } if (paramer.boost != null) { query.boost(paramer.boost); } if (paramer.slop != null) { query.slop(paramer.slop); } return query; }
public static ToXContent fullParamer(MatchPhraseQueryBuilder query, Paramer paramer) { if (paramer.analysis != null) { query.analyzer(paramer.analysis); } if (paramer.boost != null) { query.boost(paramer.boost); } if (paramer.slop != null) { query.slop(paramer.slop); } return query; }
matchQuery.slop(slop); matchQuery.zeroTermsQuery(zeroTermsQuery); matchQuery.queryName(queryName);
/** * 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; }
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; }
.setFetchSource(false).setExplain(false).setFetchSource(false). setQuery(QueryBuilders.boolQuery().must(QueryBuilders.matchPhraseQuery(field, phrase) .slop(slop).analyzer("whitespace")).filter(idsFilterBuilder)) .execute().actionGet();
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; }
matchQuery.slop(slop); matchQuery.zeroTermsQuery(zeroTermsQuery); matchQuery.queryName(queryName);
matchQuery.slop(slop); matchQuery.queryName(queryName); matchQuery.boost(boost);
matchQuery.slop(slop); matchQuery.zeroTermsQuery(zeroTermsQuery); matchQuery.queryName(queryName);