private FulltextSearchQuery createIndexQuery(final String observedUserId, String userId, Date fromDate, Date toDate) { final List<FieldRequest> fieldRequestList = new ArrayList<FieldRequest>(); fieldRequestList.add(new FieldRequest(PublicationIndexFieldConstants.FIELD_EXID)); fieldRequestList.add(new FieldRequest(PublicationIndexFieldConstants.FIELD_CREATED_BY_USER_TIMESTAMP)); final ResultsFormat resultsFormat = new ResultsFormat(fieldRequestList); final List<SearchCriterion> fieldCriterionList = new ArrayList<SearchCriterion>(); fieldCriterionList.add(new FieldCriterion(PublicationIndexFieldConstants.FIELD_USER_UID_CREATOR, observedUserId, SearchOperator.AND)); String fromDateString = IndexUtils.dateToString(new DateTime(fromDate)); String toDateString = IndexUtils.dateToString(new DateTime(toDate)); fieldCriterionList.add(new FieldRangeCriterion(PublicationIndexFieldConstants.FIELD_CREATED_BY_USER_TIMESTAMP, fromDateString, toDateString)); final List<Order> orderList = new ArrayList<Order>(); orderList.add(new Order(PublicationIndexFieldConstants.FIELD_CREATED_BY_USER_TIMESTAMP)); orderList.add(Order.relevanceOrder()); final FulltextSearchQuery searchQuery = new FulltextSearchQuery(0, getAggregationNumberLimit()+1, resultsFormat, orderList, fieldCriterionList); return searchQuery; }
private FulltextSearchQuery createIndexQuery(final String journalId, String userId, Date fromDate, Date toDate) { final List<FieldRequest> fieldRequestList = new ArrayList<FieldRequest>(); fieldRequestList.add(new FieldRequest(PublicationIndexFieldConstants.FIELD_EXID)); fieldRequestList.add(new FieldRequest(PublicationIndexFieldConstants.FIELD_DATE + SEP + "creationTimestamp")); final ResultsFormat resultsFormat = new ResultsFormat(fieldRequestList); final List<SearchCriterion> fieldCriterionList = new ArrayList<SearchCriterion>(); fieldCriterionList.add(new FieldCriterion(PublicationIndexFieldConstants.FIELD_ANCESTOR_ID + SEP + HierarchyWithLevelIds.EXT_LEVEL_JOURNAL_JOURNAL, journalId, SearchOperator.AND)); fieldCriterionList.add(new FieldCriterion(PublicationIndexFieldConstants.FIELD_USER_UID_CREATOR, userId, SearchOperator.NOT)); String fromDateString = IndexUtils.dateToString(new DateTime(fromDate)); String toDateString = IndexUtils.dateToString(new DateTime(toDate)); fieldCriterionList.add(new FieldRangeCriterion(PublicationIndexFieldConstants.FIELD_DATE + SEP + "creationTimestamp", fromDateString, toDateString)); final List<Order> orderList = new ArrayList<Order>(); orderList.add(new Order(PublicationIndexFieldConstants.FIELD_DATE + SEP + "creationTimestamp")); orderList.add(Order.relevanceOrder()); final FulltextSearchQuery searchQuery = new FulltextSearchQuery(0, getAggregationNumberLimit()+1, resultsFormat, orderList, fieldCriterionList); return searchQuery; }
private FulltextSearchQuery createIndexQuery(final String publicationId, String userId, Date fromDate, Date toDate) { final List<FieldRequest> fieldRequestList = new ArrayList<FieldRequest>(); fieldRequestList.add(new FieldRequest(PublicationIndexFieldConstants.FIELD_CONTENT_LAST_MODIFICATION_USER)); fieldRequestList.add(new FieldRequest(PublicationIndexFieldConstants.FIELD_CONTENT_LAST_MODIFICATION_TIMESTAMP)); final ResultsFormat resultsFormat = new ResultsFormat(fieldRequestList); final List<SearchCriterion> fieldCriterionList = new ArrayList<SearchCriterion>(); fieldCriterionList.add(new FieldCriterion(PublicationIndexFieldConstants.FIELD_EXID, publicationId, SearchOperator.AND)); fieldCriterionList.add(new FieldCriterion(PublicationIndexFieldConstants.FIELD_CONTENT_LAST_MODIFICATION_USER, userId, SearchOperator.NOT)); String fromDateString = IndexUtils.dateToString(new DateTime(fromDate)); String toDateString = IndexUtils.dateToString(new DateTime(toDate)); fieldCriterionList.add(new FieldRangeCriterion(PublicationIndexFieldConstants.FIELD_CONTENT_LAST_MODIFICATION_TIMESTAMP, fromDateString, toDateString)); final List<Order> orderList = new ArrayList<Order>(); orderList.add(new Order(PublicationIndexFieldConstants.FIELD_CONTENT_LAST_MODIFICATION_TIMESTAMP)); orderList.add(Order.relevanceOrder()); final FulltextSearchQuery searchQuery = new FulltextSearchQuery(0, 1, resultsFormat, orderList, fieldCriterionList); return searchQuery; }
private FulltextSearchQuery prepareSearchQuery(final List<SearchCriterion> fieldCriterionList) { final SearchCriterion fieldRangeCriterion = new FieldRangeCriterion(FIELD_DESCRIPTION, ALL, ALL); fieldRangeCriterion.setOperator(SearchOperator.AND); fieldCriterionList.add(fieldRangeCriterion); final List<Order> orderList = new ArrayList<Order>(); orderList.add(Order.relevanceOrder()); final ResultsFormat resultsFormat = new ResultsFormat(new FieldRequest(FIELD_EXID, true)); return new FulltextSearchQuery(0, searchedElementSize, resultsFormat, orderList, fieldCriterionList); }
private FulltextSearchQuery createIndexQuery(final String collectionId, String userId, Date fromDate, Date toDate) { final List<FieldRequest> fieldRequestList = new ArrayList<FieldRequest>(); fieldRequestList.add(new FieldRequest(CollectionContentIndexFieldConstants.FIELD_CONTENT_ID)); fieldRequestList.add(new FieldRequest(CollectionContentIndexFieldConstants.FIELD_TYPE)); fieldRequestList.add(new FieldRequest(CollectionContentIndexFieldConstants.FIELD_CONTENT_ATTACHED_BY_USER)); fieldRequestList.add(new FieldRequest(CollectionContentIndexFieldConstants.FIELD_CONTENT_ATTACHED_BY_USER_TIMESTAMP)); final ResultsFormat resultsFormat = new ResultsFormat(fieldRequestList); final List<SearchCriterion> fieldCriterionList = new ArrayList<SearchCriterion>(); fieldCriterionList.add(new FieldCriterion(CollectionContentIndexFieldConstants.FIELD_COLLECTION_ID, collectionId, SearchOperator.AND)); fieldCriterionList.add(new FieldCriterion(CollectionContentIndexFieldConstants.FIELD_CONTENT_ATTACHED_BY_USER, userId, SearchOperator.NOT)); String fromDateString = IndexUtils.dateToString(new DateTime(fromDate)); String toDateString = IndexUtils.dateToString(new DateTime(toDate)); fieldCriterionList.add(new FieldRangeCriterion(CollectionContentIndexFieldConstants.FIELD_CONTENT_ATTACHED_BY_USER_TIMESTAMP, fromDateString, toDateString)); final List<Order> orderList = new ArrayList<Order>(); orderList.add(new Order(CollectionContentIndexFieldConstants.FIELD_CONTENT_ATTACHED_BY_USER_TIMESTAMP)); orderList.add(Order.relevanceOrder()); final FulltextSearchQuery searchQuery = new FulltextSearchQuery(0, getAggregationNumberLimit()+1, resultsFormat, orderList, fieldCriterionList); return searchQuery; }
@Override protected FieldRangeCriterion mergeConditions(List<FieldRangeCriterion> rangeCriterions) { if (CollectionUtils.isEmpty(rangeCriterions)) { return null; } String lowerBound = null; String upperBound = null; for (FieldRangeCriterion range : rangeCriterions) { if (range.getFrom() != null && (lowerBound == null || range.getFrom().compareTo(lowerBound) > 0)) { lowerBound = range.getFrom(); } if (range.getTo() != null && (upperBound == null || range.getTo().compareTo(upperBound) < 0)) { upperBound = range.getTo(); } } return new FieldRangeCriterion(rangeCriterions.get(0).getField(), lowerBound, upperBound); }
private AbstractSearchCriterion transformRangeCriterion(final FieldRangeCriterionProto rangeCriterion) { return new FieldRangeCriterion(rangeCriterion.getField(), rangeCriterion.getFrom(), rangeCriterion.getTo(), rangeCriterion.getInclusive()); }
private SearchCriterion fieldConditionToFieldCriterion(FieldCondition condition, SearchOperator parentOperator) { SearchCriterion result = null; if (AdvancedSearchRequest.OPERATOR_EQUALS.equals(condition.getOperator())) { result = new FieldCriterion(condition.getFieldName(), condition.getValue(), parentOperator); } else if (AdvancedSearchRequest.OPERATOR_NOT_EQUALS.equals(condition.getOperator())) { result = new FieldCriterion(condition.getFieldName(), condition.getValue(), SearchOperator.NOT); } else if (AdvancedSearchRequest.OPERATOR_LESS_OR_EQUAL.equals(condition.getOperator())) { result = new FieldRangeCriterion(condition.getFieldName(), null, condition.getValue()); result.setOperator(parentOperator); } else if (AdvancedSearchRequest.OPERATOR_GREATER_OR_EQUAL.equals(condition.getOperator())) { result = new FieldRangeCriterion(condition.getFieldName(), condition.getValue(), null); result.setOperator(parentOperator); } return result; }
@Override protected SearchCriterion fieldRangeCriterionHandler(FieldRangeCriterion criterion, SearchScheme scheme, SearchCriterionTransformerHint hint) { List<String> fieldNames = getLanguageFieldName(scheme, criterion.getField()); if(fieldNames.size()>1) { BooleanCriterion result = new BooleanCriterion(); for(String fieldName:fieldNames) { FieldRangeCriterion fieldCriterion = new FieldRangeCriterion(fieldName, criterion.getFrom(), criterion.getTo(), criterion.isInclusive()); result.addCriterion(fieldCriterion, SearchOperator.OR); } return result; }else { String fieldName = fieldNames.get(0); criterion.setField(fieldName); hint.getFieldsUsed().add(fieldName); return criterion; } } /**
FieldRangeCriterion rangeCriterion = new FieldRangeCriterion(PublicationIndexFieldConstants.FIELD_INDEXED_EXTERNAL_IDENTIFIERS + IndexFieldConstants.SEP + PublicationIndexFieldConstants.ORGIN_CURRENT + IndexFieldConstants.SEP + "bwmeta1.id-class.ISSN", "*", "*"); rangeCriterion.setOperator(SearchOperator.NOT);
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; }
result = new FieldCriterion(advancedCondition.getFieldName(), advancedCondition.getValue(), SearchOperator.NOT); } else if (AdvancedSearchRequest.OPERATOR_LESS_OR_EQUAL.equals(advancedCondition.getOperator())) { result = new FieldRangeCriterion(advancedCondition.getFieldName(), null, advancedCondition.getValue()); result.setOperator(operator); } else if (AdvancedSearchRequest.OPERATOR_GREATER_OR_EQUAL.equals(advancedCondition.getOperator())) { result = new FieldRangeCriterion(advancedCondition.getFieldName(), advancedCondition.getValue(), null); result.setOperator(operator);