private BooleanCriterion expandMultipleField(FieldCriterion criterion, Set<String> multipleExpandFieldNames) { BooleanCriterion fieldCriterion = new BooleanCriterion(); String value = criterion.getValue(); for (String field : multipleExpandFieldNames) { fieldCriterion.addCriterion(new FieldCriterion(field, value), (criterion.getOperator() == SearchOperator.NOT) ? SearchOperator.NOT :SearchOperator.OR); } return fieldCriterion; }
@Override protected boolean isCriterionSupported(SearchCriterion criterion) { if (criterion instanceof BooleanCriterion) { for (SearchCriterion subcriterion : ((BooleanCriterion) criterion).getCriteria()) { if (!(subcriterion instanceof FieldCriterion)) { return false; } } return true; } return false; }
public SearchCriterion transformFieldCriterion(FieldCriterion criterion, SearchCriterionTransformerHint hint) { String dateString = criterion.getValue(); FieldRangeCriterion dateRangeCriterion = new FieldRangeCriterion(criterion.getField()); dateRangeCriterion.setOperator(criterion.getOperator()); dateRangeCriterion.setFrom(appendMissingDateFormat(dateString, false)); dateRangeCriterion.setTo(appendMissingDateFormat(dateString, true)); return dateRangeCriterion; }
private SearchCriterion domainQueryBuilder(Set<String> emailDomains) { if (emailDomains.size() == 1) { return new FieldCriterion(PeopleIndexFieldConstants.FIELD_EMAIL_DOMAIN, emailDomains.iterator().next()); } else { BooleanCriterion crit = new BooleanCriterion(); crit.setOperator(SearchOperator.OR); for (String domain : emailDomains) { crit.addCriterion(new FieldCriterion(PeopleIndexFieldConstants.FIELD_EMAIL_DOMAIN, domain)); } return crit; } }
public BooleanCriterion fieldConditionsListToBooleanCriterion(List<FieldCondition> conditions, SearchOperator operator) { BooleanCriterion bc = new BooleanCriterion(); bc.setOperator(operator); for (FieldCondition condition : conditions) { SearchCriterion criterion = fieldConditionToFieldCriterion(condition, operator); if (criterion != null) { bc.addCriterion(criterion); } } return bc; }
private AbstractSearchCriterion createBooleanCriterion(final List<SearchCriterionProto> list) { BooleanCriterion booleanCriterion = new BooleanCriterion(); for (SearchCriterionProto searchCriterionProto : list) { SearchCriterion criterion = convertFrom(searchCriterionProto); booleanCriterion.addCriterion(criterion); } return booleanCriterion; }
private FieldCriterion fieldCriterion(String fieldName, String query) { return new FieldCriterion(fieldName, query.trim(), false); }
public SearchCriterion transformFieldRangeCriterion(FieldRangeCriterion criterion, SearchCriterionTransformerHint hint) { String from = criterion.getFrom(); if (from != null) { criterion.setFrom(appendMissingDateFormat(from, false)); } String to = criterion.getTo(); if (to != null) { criterion.setTo(appendMissingDateFormat(to, true)); } return criterion; }
public static String extractFieldHash(SearchCriterion criterion) { if (criterion instanceof FieldCriterion) { return ((FieldCriterion) criterion).getField() + criterion.getOperator().getName(); } else if (criterion instanceof FieldRangeCriterion) { return ((FieldRangeCriterion) criterion).getField(); } else if (criterion instanceof BooleanCriterion) { return "boolean" + extractFieldHash(((BooleanCriterion) criterion).getCriteria().get(0)); } else { return StringUtils.EMPTY; } }
private AbstractSearchCriterion transformRangeCriterion(final FieldRangeCriterionProto rangeCriterion) { return new FieldRangeCriterion(rangeCriterion.getField(), rangeCriterion.getFrom(), rangeCriterion.getTo(), rangeCriterion.getInclusive()); }
protected SearchCriterion buildAuthorYearCriterion(PublicationMetadata template) { if (template.getYear() == null || template.getAuthors() == null || template.getAuthors().isEmpty()) return null; BooleanCriterion criterion = new BooleanCriterion(); criterion.setOperator(SearchOperator.AND); criterion.addCriterion(new FieldCriterion(MetadataIndexConstants.F_YEAR, template.getYear())); for (PublicationAuthor author : template.getAuthors()) if (author.getSurname() != null) { criterion.addCriterion(new FieldCriterion(MetadataIndexConstants.F_AUTHOR_SURNAME, author.getSurname())); } return criterion; }
private BooleanCriterion disjunction(String query, String... fieldNames) { BooleanCriterion result = new BooleanCriterion(); for (String fName : fieldNames) { result.addCriterion(fieldCriterion(fName, query), SearchOperator.OR); } return result; }
@Override public FulltextSearchResult read() throws Exception, UnexpectedInputException, ParseException, NonTransientResourceException { return readNextResult(new FieldCriterion("*", "*", SearchOperator.AND)); } }
public static boolean isCriterionEmpty(SearchCriterion criterion) { if (criterion instanceof BooleanCriterion) { return ((BooleanCriterion)criterion).getCriteria().isEmpty(); } return criterion == null; } }
protected SearchCriterion buildAuthorJournalCriterion(PublicationMetadata template) { if (template.getYear() == null || template.getJournal() == null || template.getAuthors() == null || template.getAuthors().isEmpty()) return null; BooleanCriterion criterion = new BooleanCriterion(); criterion.setOperator(SearchOperator.AND); criterion.addCriterion(new FieldCriterion(MetadataIndexConstants.F_YEAR, template.getYear())); criterion.addCriterion(new FieldCriterion(MetadataIndexConstants.F_JOURNAL_HASH, abbreviationDirectory.toAcronym(template.getJournal()))); for (PublicationAuthor author : template.getAuthors()) if (author.getSurname() != null) { criterion.addCriterion(new FieldCriterion(MetadataIndexConstants.F_AUTHOR_SURNAME, author.getSurname())); } return criterion; }