List of usage examples for com.liferay.portal.kernel.search BooleanQuery addTerms
public Map<String, Query> addTerms(String[] fields, String value, boolean like) throws ParseException;
From source file:vn.com.ecopharma.emp.service.impl.EmpLocalServiceImpl.java
License:Open Source License
@SuppressWarnings("unchecked") public List<Document> filterEmployeeByFields(SearchContext searchContext, Map<String, Object> filters, Sort sort, long companyId, int start, int end) throws ParseException { final List<Query> queries = new ArrayList<>(); if (filters != null) { Date joinedDateFrom = filters.get(EmpField.JOINED_DATE_FROM) != null ? (Date) filters.get(EmpField.JOINED_DATE_FROM) : null;/*from w ww. j a v a 2 s. c om*/ Date joinedDateTo = filters.get(EmpField.JOINED_DATE_TO) != null ? (Date) filters.get(EmpField.JOINED_DATE_TO) : null; for (Map.Entry<String, Object> filter : filters.entrySet()) { final String filterProperty = filter.getKey(); final Object filterValue = filter.getValue(); LOGGER.info("Filter Property: " + filterProperty); if (filterValue instanceof String) { LOGGER.info("Filter Property Value: " + filterValue); if (filterProperty.equalsIgnoreCase(GLOBAL_FILTER)) { final BooleanQuery globalFilterBooleanQuery = BooleanQueryFactoryUtil.create(searchContext); globalFilterBooleanQuery.addTerms(getGlobalSearchFields(), (String) filterValue, true); queries.add(globalFilterBooleanQuery); } else { // TODO BooleanQuery stringFilterQuery = BooleanQueryFactoryUtil.create(searchContext); stringFilterQuery.addTerm(filterProperty, (String) filterValue, true, BooleanClauseOccur.MUST); queries.add(stringFilterQuery); } } else if (filterValue instanceof List<?>) { if ((filterProperty.equalsIgnoreCase(EmpField.GENDER)) || filterProperty.equalsIgnoreCase(EmpField.STATUS)) { queries.add( createStringListQuery(filterProperty, (List<String>) filterValue, searchContext)); } else if (isOrganizationFilter(filterProperty)) { queries.add(createOrganizationFilterQuery(filterProperty, (List<String>) filterValue, searchContext)); } } else if (filterValue instanceof Date) { Query dateRangeQuery = createDateTermRangeQuery(EmpField.JOINED_DATE, joinedDateFrom, joinedDateTo, true, true, searchContext); if (dateRangeQuery != null) queries.add(dateRangeQuery); } else if (filterValue instanceof Map.Entry<?, ?>) { // for // autoComplete // filter final Map.Entry<String[], String> autoCompleteFilterEntry = (Map.Entry<String[], String>) filterValue; final BooleanQuery autoCompleteFilterBooleanQuery = BooleanQueryFactoryUtil .create(searchContext); autoCompleteFilterBooleanQuery.addTerms(autoCompleteFilterEntry.getKey(), autoCompleteFilterEntry.getValue(), true); queries.add(autoCompleteFilterBooleanQuery); } } } /* SORT */ if (sort == null) { sort = new Sort(EmpField.EMP_ID, false); } return searchAllUnDeletedEmpIndexedDocument(searchContext, queries, companyId, sort, start, end); }
From source file:vn.com.ecopharma.hrm.rc.service.impl.CandidateLocalServiceImpl.java
License:Open Source License
@SuppressWarnings("unchecked") public List<Document> filterByFields(SearchContext searchContext, Map<String, Object> filters, Sort sort, long companyId, int start, int end) throws ParseException { final List<Query> queries = new ArrayList<>(); Date dateFrom = filters.get(CandidateField.APPLY_DATE_FROM) != null ? (Date) filters.get(CandidateField.APPLY_DATE_FROM) : null;/*www .j av a 2 s . c o m*/ Date dateTo = filters.get(CandidateField.APPLY_DATE_TO) != null ? (Date) filters.get(CandidateField.APPLY_DATE_TO) : null; for (Map.Entry<String, Object> filter : filters.entrySet()) { String filterProperty = filter.getKey(); Object filterValue = filter.getValue(); LOGGER.info(filterProperty); LOGGER.info(filterValue); if (filterValue instanceof String) { if (filterProperty.equalsIgnoreCase(CandidateField.GLOBAL)) { final BooleanQuery globalFilterBooleanQuery = BooleanQueryFactoryUtil.create(searchContext); globalFilterBooleanQuery.addTerms(getGlobalSearchableFields(), (String) filterValue, true); queries.add(globalFilterBooleanQuery); } else { BooleanQuery stringFilterQuery = BooleanQueryFactoryUtil.create(searchContext); stringFilterQuery.addTerm(filterProperty, (String) filterValue, true, BooleanClauseOccur.MUST); queries.add(stringFilterQuery); } } else if (filterValue instanceof List<?>) { queries.add(EmpLocalServiceUtil.createStringListQuery(filterProperty, (List<String>) filterValue, searchContext)); } else if (filterValue instanceof Date) { // Query applicationDateRangeQuery = EmpLocalServiceUtil // .createDateTermRangeQuery( // CandidateField.APPLICATION_DATE, dateFrom, // dateTo, true, true, searchContext); Query applicationDateRangeQuery = createDateTermRangeQuery(CandidateField.APPLICATION_DATE, dateFrom, dateTo, searchContext); if (applicationDateRangeQuery != null) queries.add(applicationDateRangeQuery); } } /* SORT */ if (sort == null) { sort = new Sort(CandidateField.CANDIDATE_ID, false); } return searchAllUnDeletedCandidatesIndexedDocument(searchContext, queries, companyId, sort, start, end); }
From source file:vn.com.ecopharma.hrm.rc.service.impl.VacancyLocalServiceImpl.java
License:Open Source License
@SuppressWarnings("unchecked") public List<Document> filterByFields(SearchContext searchContext, Map<String, Object> filters, Sort sort, long companyId, int start, int end) throws ParseException { final List<Query> queries = new ArrayList<>(); for (Map.Entry<String, Object> filter : filters.entrySet()) { String filterProperty = filter.getKey(); Object filterValue = filter.getValue(); if (filterValue instanceof String) { if (filterProperty.equalsIgnoreCase(VacancyField.GLOBAL)) { final BooleanQuery globalFilterBooleanQuery = BooleanQueryFactoryUtil.create(searchContext); globalFilterBooleanQuery.addTerms(getGlobalSearchableFields(), (String) filterValue, true); queries.add(globalFilterBooleanQuery); } else if (filterProperty.equalsIgnoreCase(CandidateField.APPLY_DATE_FROM) || filterProperty.equalsIgnoreCase(CandidateField.APPLY_DATE_TO)) { // final String dateFrom = filters // .get(CandidateField.APPLY_DATE_FROM) != null ? (String) // filters // .get(CandidateField.APPLY_DATE_FROM) // : StringUtils.EMPTY; // final String dateTo = filters // .get(CandidateField.APPLY_DATE_TO) != null ? (String) // filters // .get(CandidateField.APPLY_DATE_TO) // : StringUtils.EMPTY; // // EmpLocalServiceUtil.createDateTermRangeQuery( // CandidateField.APPLICATION_DATE, queries, dateFrom, // dateTo, searchContext); // Query dateRangeQuery = // candidateLocalService.createDateTermRangeQuery(filterProperty, // dateFrom, dateTo, searchContext) } else { BooleanQuery stringFilterQuery = BooleanQueryFactoryUtil.create(searchContext); stringFilterQuery.addTerm(filterProperty, (String) filterValue, true, BooleanClauseOccur.MUST); queries.add(stringFilterQuery); }/*from www .j a va 2 s . c om*/ } else if (filterValue instanceof List<?>) { queries.add(EmpLocalServiceUtil.createStringListQuery(filterProperty, (List<String>) filterValue, searchContext)); } } return searchAllUnDeletedVacanciesIndexedDocument(searchContext, queries, companyId, sort, start, end); }