public static ToXContent fullParamer(SpanNearQueryBuilder query, Paramer paramer) { if (paramer.boost != null) { query.boost(paramer.boost); } if (paramer.inOrder != null) { query.inOrder(paramer.inOrder); } return query; } }
queryBuilder.addClause(clauses.get(i)); queryBuilder.inOrder(inOrder); queryBuilder.boost(boost); queryBuilder.queryName(queryName);
@Override public SpanNearQueryBuilder createQuery() { Monoflop mflop = Monoflop.create(); SpanNearQueryBuilder builder = null; for (SpanConstraint constraint : constraints) { if (mflop.firstCall()) { builder = QueryBuilders.spanNearQuery(constraint.createSpanQuery(), slop).inOrder(inOrder).boost(boost); } else { builder.addClause(constraint.createSpanQuery()).inOrder(inOrder).boost(boost); } } return builder; }
public long count(Ngram ngram){ 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()[1])); } queryBuilder.inOrder(inOrder); long hits = client.prepareSearch(this.indexName).setQuery(queryBuilder) .execute().actionGet().getHits().getTotalHits(); return hits; }
public long count(Ngram ngram, String[] ids){ 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); IdsQueryBuilder idsFilterBuilder = new IdsQueryBuilder(documentType); idsFilterBuilder.addIds(ids); long hits = client.prepareSearch(this.indexName).setQuery(queryBuilder) .execute().actionGet().getHits().getTotalHits(); return hits; }
queryBuilder.addClause(clauses.get(i)); queryBuilder.inOrder(inOrder); queryBuilder.boost(boost); queryBuilder.queryName(queryName);
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; }
queryBuilder.addClause(clauses.get(i)); queryBuilder.inOrder(inOrder); queryBuilder.boost(boost); queryBuilder.queryName(queryName);
queryBuilder.addClause(clauses.get(i)); queryBuilder.inOrder(inOrder); queryBuilder.boost(boost); queryBuilder.queryName(queryName);
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; }
queryBuilder.addClause(new SpanTermQueryBuilder(field, ngram.getTerms()[i])); queryBuilder.inOrder(inOrder);