List of usage examples for org.springframework.data.elasticsearch.core.query Criteria getFilterCriteriaEntries
public Set<CriteriaEntry> getFilterCriteriaEntries()
From source file:com.github.vanroy.springdata.jest.CriteriaFilterProcessor.java
private List<QueryBuilder> createFilterFragmentForCriteria(Criteria chainedCriteria) { Iterator<CriteriaEntry> it = chainedCriteria.getFilterCriteriaEntries().iterator(); List<QueryBuilder> filterList = new LinkedList<QueryBuilder>(); String fieldName = chainedCriteria.getField().getName(); Assert.notNull(fieldName, "Unknown field"); QueryBuilder filter = null;//from www. ja v a 2s .c o m while (it.hasNext()) { Criteria.CriteriaEntry entry = it.next(); filter = processCriteriaEntry(entry.getKey(), entry.getValue(), fieldName); filterList.add(filter); } return filterList; }
From source file:com.github.vanroy.springdata.jest.CriteriaFilterProcessor.java
QueryBuilder createFilterFromCriteria(Criteria criteria) { List<QueryBuilder> fbList = new LinkedList<QueryBuilder>(); QueryBuilder filter = null;//from w w w.j a va 2 s. c om ListIterator<Criteria> chainIterator = criteria.getCriteriaChain().listIterator(); while (chainIterator.hasNext()) { QueryBuilder fb = null; Criteria chainedCriteria = chainIterator.next(); if (chainedCriteria.isOr()) { fb = QueryBuilders.boolQuery(); for (QueryBuilder f : createFilterFragmentForCriteria(chainedCriteria)) { ((BoolQueryBuilder) fb).should(f); } fbList.add(fb); } else if (chainedCriteria.isNegating()) { List<QueryBuilder> negationFilters = buildNegationFilter(criteria.getField().getName(), criteria.getFilterCriteriaEntries().iterator()); if (!negationFilters.isEmpty()) { fbList.addAll(negationFilters); } } else { fbList.addAll(createFilterFragmentForCriteria(chainedCriteria)); } } if (!fbList.isEmpty()) { if (fbList.size() == 1) { filter = fbList.get(0); } else { filter = QueryBuilders.boolQuery(); for (QueryBuilder f : fbList) { ((BoolQueryBuilder) filter).must(f); } } } return filter; }