/** * A more like this query that finds documents that are "like" the provided texts * which is checked against the "_all" field. * @param likeTexts the text to use when generating the 'More Like This' query. */ public static MoreLikeThisQueryBuilder moreLikeThisQuery(String[] likeTexts) { return moreLikeThisQuery(null, likeTexts, null); }
/** * A more like this query that finds documents that are "like" the provided documents * which is checked against the "_all" field. * @param likeItems the documents to use when generating the 'More Like This' query. */ public static MoreLikeThisQueryBuilder moreLikeThisQuery(Item[] likeItems) { return moreLikeThisQuery(null, null, likeItems); }
/** * A more like this query that finds documents that are "like" the provided texts or documents * which is checked against the "_all" field. * @param likeTexts the text to use when generating the 'More Like This' query. * @param likeItems the documents to use when generating the 'More Like This' query. */ public static MoreLikeThisQueryBuilder moreLikeThisQuery(String[] likeTexts, Item[] likeItems) { return moreLikeThisQuery(null, likeTexts, likeItems); }
if (q != null && q.length() > 0) { suggest.should(QueryBuilders.fuzzyQuery(fieldName, q).fuzziness(Fuzziness.fromEdits(2))); suggest.should(QueryBuilders.moreLikeThisQuery(fieldName).like(q)); suggest.should(QueryBuilders.matchPhrasePrefixQuery(fieldName, q)); if (q.indexOf('*') >= 0 || q.indexOf('?') >= 0) suggest.should(QueryBuilders.wildcardQuery(fieldName, q));
Assert.notNull(query.getId(), "No document id defined for MoreLikeThisQuery"); MoreLikeThisQueryBuilder moreLikeThisQueryBuilder = moreLikeThisQuery( toArray(new MoreLikeThisQueryBuilder.Item(indexName, type, query.getId())));
/** * A more like this query that finds documents that are "like" the provided texts or documents * which is checked against the "_all" field. * @param likeTexts the text to use when generating the 'More Like This' query. * @param likeItems the documents to use when generating the 'More Like This' query. */ public static MoreLikeThisQueryBuilder moreLikeThisQuery(String[] likeTexts, Item[] likeItems) { return moreLikeThisQuery(null, likeTexts, likeItems); }
/** * A more like this query that finds documents that are "like" the provided texts * which is checked against the "_all" field. * @param likeTexts the text to use when generating the 'More Like This' query. */ public static MoreLikeThisQueryBuilder moreLikeThisQuery(String[] likeTexts) { return moreLikeThisQuery(null, likeTexts, null); }
/** * A more like this query that finds documents that are "like" the provided documents * which is checked against the "_all" field. * @param likeItems the documents to use when generating the 'More Like This' query. */ public static MoreLikeThisQueryBuilder moreLikeThisQuery(Item[] likeItems) { return moreLikeThisQuery(null, null, likeItems); }
/** * A more like this query that finds documents that are "like" the provided texts * which is checked against the "_all" field. * @param likeTexts the text to use when generating the 'More Like This' query. */ public static MoreLikeThisQueryBuilder moreLikeThisQuery(String[] likeTexts) { return moreLikeThisQuery(null, likeTexts, null); }
/** * A more like this query that finds documents that are "like" the provided texts or documents * which is checked against the "_all" field. * @param likeTexts the text to use when generating the 'More Like This' query. * @param likeItems the documents to use when generating the 'More Like This' query. */ public static MoreLikeThisQueryBuilder moreLikeThisQuery(String[] likeTexts, Item[] likeItems) { return moreLikeThisQuery(null, likeTexts, likeItems); }
/** * A more like this query that finds documents that are "like" the provided documents * which is checked against the "_all" field. * @param likeItems the documents to use when generating the 'More Like This' query. */ public static MoreLikeThisQueryBuilder moreLikeThisQuery(Item[] likeItems) { return moreLikeThisQuery(null, null, likeItems); }
/** * A more like this query that finds documents that are "like" the provided texts or documents * which is checked against the "_all" field. * @param likeTexts the text to use when generating the 'More Like This' query. * @param likeItems the documents to use when generating the 'More Like This' query. */ public static MoreLikeThisQueryBuilder moreLikeThisQuery(String[] likeTexts, Item[] likeItems) { return moreLikeThisQuery(null, likeTexts, likeItems); }
/** * A more like this query that finds documents that are "like" the provided documents * which is checked against the "_all" field. * @param likeItems the documents to use when generating the 'More Like This' query. */ public static MoreLikeThisQueryBuilder moreLikeThisQuery(Item[] likeItems) { return moreLikeThisQuery(null, null, likeItems); }
/** * A more like this query that finds documents that are "like" the provided texts * which is checked against the "_all" field. * @param likeTexts the text to use when generating the 'More Like This' query. */ public static MoreLikeThisQueryBuilder moreLikeThisQuery(String[] likeTexts) { return moreLikeThisQuery(null, likeTexts, null); }
@Override public <P extends ParaObject> List<P> findSimilar(String appid, String type, String filterKey, String[] fields, String liketext, Pager... pager) { if (StringUtils.isBlank(liketext)) { return Collections.emptyList(); } QueryBuilder qb; FilterBuilder fb; if (fields == null || fields.length == 0) { qb = QueryBuilders.moreLikeThisQuery().likeText(liketext).minDocFreq(1).minTermFreq(1); } else { qb = QueryBuilders.moreLikeThisQuery(fields).likeText(liketext).minDocFreq(1).minTermFreq(1); } if (!StringUtils.isBlank(filterKey)) { fb = FilterBuilders.notFilter(FilterBuilders.inFilter(Config._ID, filterKey)); qb = QueryBuilders.filteredQuery(qb, fb); } return searchQuery(appid, searchQueryRaw(appid, type, qb, pager)); }
protected QueryBuilder createSimilarToTextQuery(SimilarToTextQueryParameters similarTo) { List<String> allFields = new ArrayList<>(); String[] fields = similarTo.getFields(); for (String field : fields) { Collections.addAll(allFields, getPropertyNames(field)); } MoreLikeThisQueryBuilder q = QueryBuilders.moreLikeThisQuery( allFields.toArray(new String[allFields.size()]), new String[]{similarTo.getText()}, null ); if (similarTo.getMinTermFrequency() != null) { q.minTermFreq(similarTo.getMinTermFrequency()); } if (similarTo.getMaxQueryTerms() != null) { q.maxQueryTerms(similarTo.getMaxQueryTerms()); } if (similarTo.getMinDocFrequency() != null) { q.minDocFreq(similarTo.getMinDocFrequency()); } if (similarTo.getMaxDocFrequency() != null) { q.maxDocFreq(similarTo.getMaxDocFrequency()); } if (similarTo.getBoost() != null) { q.boost(similarTo.getBoost()); } return q; }
protected QueryBuilder createSimilarToTextQuery(SimilarToTextQueryParameters similarTo) { List<String> allFields = new ArrayList<>(); String[] fields = similarTo.getFields(); for (String field : fields) { Collections.addAll(allFields, getPropertyNames(field)); } MoreLikeThisQueryBuilder q = QueryBuilders.moreLikeThisQuery( allFields.toArray(new String[allFields.size()]), new String[]{similarTo.getText()}, null ); if (similarTo.getMinTermFrequency() != null) { q.minTermFreq(similarTo.getMinTermFrequency()); } if (similarTo.getMaxQueryTerms() != null) { q.maxQueryTerms(similarTo.getMaxQueryTerms()); } if (similarTo.getMinDocFrequency() != null) { q.minDocFreq(similarTo.getMinDocFrequency()); } if (similarTo.getMaxDocFrequency() != null) { q.maxDocFreq(similarTo.getMaxDocFrequency()); } if (similarTo.getBoost() != null) { q.boost(similarTo.getBoost()); } return q; }
protected QueryBuilder createSimilarToTextQuery(SimilarToTextQueryParameters similarTo) { List<String> allFields = new ArrayList<>(); String[] fields = similarTo.getFields(); for (String field : fields) { Collections.addAll(allFields, getPropertyNames(field)); } MoreLikeThisQueryBuilder q = QueryBuilders.moreLikeThisQuery(allFields.toArray(new String[allFields.size()])) .likeText(similarTo.getText()); if (similarTo.getMinTermFrequency() != null) { q.minTermFreq(similarTo.getMinTermFrequency()); } if (similarTo.getMaxQueryTerms() != null) { q.maxQueryTerms(similarTo.getMaxQueryTerms()); } if (similarTo.getMinDocFrequency() != null) { q.minDocFreq(similarTo.getMinDocFrequency()); } if (similarTo.getMaxDocFrequency() != null) { q.maxDocFreq(similarTo.getMaxDocFrequency()); } if (similarTo.getBoost() != null) { q.boost(similarTo.getBoost()); } return q; }
protected QueryBuilder createSimilarToTextQuery(SimilarToTextQueryParameters similarTo) { List<String> allFields = new ArrayList<>(); String[] fields = similarTo.getFields(); for (String field : fields) { Collections.addAll(allFields, getPropertyNames(field)); } MoreLikeThisQueryBuilder q = QueryBuilders.moreLikeThisQuery(allFields.toArray(new String[allFields.size()])) .like(similarTo.getText()); if (similarTo.getMinTermFrequency() != null) { q.minTermFreq(similarTo.getMinTermFrequency()); } if (similarTo.getMaxQueryTerms() != null) { q.maxQueryTerms(similarTo.getMaxQueryTerms()); } if (similarTo.getMinDocFrequency() != null) { q.minDocFreq(similarTo.getMinDocFrequency()); } if (similarTo.getMaxDocFrequency() != null) { q.maxDocFreq(similarTo.getMaxDocFrequency()); } if (similarTo.getBoost() != null) { q.boost(similarTo.getBoost()); } return q; }
} else if (queryParameters instanceof SimilarToTextQueryParameters) { SimilarToTextQueryParameters similarTo = (SimilarToTextQueryParameters) queryParameters; MoreLikeThisQueryBuilder q = QueryBuilders.moreLikeThisQuery(similarTo.getFields()) .likeText(similarTo.getText()); if (similarTo.getPercentTermsToMatch() != null) {