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); }
/** * Construct criterion filter. * * @param filterDefinition the filter definition * @param schema the schema * @return the string * */ private String constructCriterionFilter(final CriterionFilterDefinition filterDefinition, final FulltextIndexSchema schema) { final String filterName = filterDefinition.getFilterName(); final List<SearchCriterion> criteria = new ArrayList<SearchCriterion>(); final SearchCriterion criterion = filterDefinition.getCriterion(); if (criterion == null) { throw new GeneralServiceException("There is no SearchCriterion in CriterionFilterDefinition with name: {}", filterName); } // we don't care about single filter operator. criterion.setOperator(SearchOperator.OR); criteria.add(criterion); final String query = queryBuilder.constructQuery(criteria, null, schema); if (StringUtils.hasText(query)) { if (LOG.isDebugEnabled()) { LOG.debug("Criterion Filter constructed (definition: {}) : {}", filterName, query); } return query; } else { throw new GeneralServiceException("Failed to create query from criterion filter definition with name: {}", filterName); } }
criterion.getCriteria().get(0).setOperator(SearchOperator.OR);
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; }
} 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); bc.getCriteria().get(0).setOperator(bc.getOperator());