List of usage examples for org.springframework.data.elasticsearch.core.query Criteria getField
public Field getField()
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 ww w . j a v a 2 s . c om 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.CriteriaQueryProcessor.java
private QueryBuilder createQueryFragmentForCriteria(Criteria chainedCriteria) { if (chainedCriteria.getQueryCriteriaEntries().isEmpty()) return null; Iterator<CriteriaEntry> it = chainedCriteria.getQueryCriteriaEntries().iterator(); boolean singeEntryCriteria = (chainedCriteria.getQueryCriteriaEntries().size() == 1); String fieldName = chainedCriteria.getField().getName(); Assert.notNull(fieldName, "Unknown field"); QueryBuilder query = null;/* w w w.j a v a 2 s . c o m*/ if (singeEntryCriteria) { Criteria.CriteriaEntry entry = it.next(); query = processCriteriaEntry(entry, fieldName); } else { query = boolQuery(); while (it.hasNext()) { Criteria.CriteriaEntry entry = it.next(); ((BoolQueryBuilder) query).must(processCriteriaEntry(entry, fieldName)); } } addBoost(query, chainedCriteria.getBoost()); return query; }
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 v a 2 s . c o m*/ 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; }
From source file:org.springframework.data.elasticsearch.core.query.Criteria.java
/** * Chain using {@code OR}//from w ww. j av a 2 s .c om * * @param criteria * @return */ public Criteria or(Criteria criteria) { Assert.notNull(criteria, "Cannot chain 'null' criteria."); Criteria orConnectedCritiera = new OrCriteria(this.criteriaChain, criteria.getField()); orConnectedCritiera.criteria.addAll(criteria.criteria); return orConnectedCritiera; }