Example usage for com.liferay.portal.kernel.search BooleanClauseOccur MUST

List of usage examples for com.liferay.portal.kernel.search BooleanClauseOccur MUST

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.search BooleanClauseOccur MUST.

Prototype

BooleanClauseOccur MUST

To view the source code for com.liferay.portal.kernel.search BooleanClauseOccur MUST.

Click Source Link

Usage

From source file:vn.com.ecopharma.emp.service.impl.EmpAnnualLeaveLocalServiceImpl.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<>();
    if (filters != 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);
                // TODO
                BooleanQuery stringFilterQuery = BooleanQueryFactoryUtil.create(searchContext);
                stringFilterQuery.addTerm(filterProperty, (String) filterValue, true, BooleanClauseOccur.MUST);
                queries.add(stringFilterQuery);

            } else if (filterValue instanceof List<?>) {
                queries.add(empLocalService.createStringListQuery(filterProperty, (List<String>) filterValue,
                        searchContext));
            } else if (filterValue instanceof Date) {
                // Query effectiveDateQuery = empLocalService
                // .createDateTermRangeQuery(
                // EmpAnnualLeaveField.EFFECTIVE_DATE,
                // effectiveDateFrom, effectiveDateTo, true,
                // true, searchContext);
                // if (effectiveDateQuery != null) {
                // queries.add(effectiveDateQuery);
                // }
            }//w w  w . j  av  a  2 s.com
        }
    }
    /* SORT */
    if (sort == null) {
        sort = new Sort(EmpAnnualLeaveField.ID, false);
    }
    return searchAllDocuments(searchContext, queries, companyId, sort, start, end);
}

From source file:vn.com.ecopharma.emp.service.impl.EmpAnnualLeaveLocalServiceImpl.java

License:Open Source License

public Document getIndexedDocument(long id, SearchContext searchContext) {
    searchContext.setPortletIds(new String[] { EMInfo.PORTLET_ID });
    BooleanQuery fullQuery = BooleanQueryFactoryUtil.create(searchContext);
    BooleanQuery booleanQuery = BooleanQueryFactoryUtil.create(searchContext);
    booleanQuery.addRequiredTerm(Field.ENTRY_CLASS_NAME, EmpAnnualLeave.class.getName());
    booleanQuery.addExactTerm(EmpAnnualLeaveField.ID, id);

    try {//from   w  w w.j  ava2 s  .com
        fullQuery.add(booleanQuery, BooleanClauseOccur.MUST);
        Hits hits = SearchEngineUtil.search(searchContext, fullQuery);
        return !hits.toList().isEmpty() ? hits.toList().get(0) : null;
    } catch (ParseException e) {
        LogFactoryUtil.getLog(EmpDisciplineLocalServiceImpl.class).info(e);
    } catch (SearchException e) {
        LogFactoryUtil.getLog(EmpDisciplineLocalServiceImpl.class).info(e);
    }

    return null;
}

From source file:vn.com.ecopharma.emp.service.impl.EmpDisciplineLocalServiceImpl.java

License:Open Source License

public List<Document> searchAllDocuments(SearchContext searchContext, List<Query> filterQueries, long companyId,
        Sort sort, int start, int end) {

    LOGGER.info("FilterQueries size: " + filterQueries.size());
    final BooleanQuery fullQuery = BooleanQueryFactoryUtil.create(searchContext);
    final BooleanQuery allEntriesBooleanQuery = BooleanQueryFactoryUtil.create(searchContext);

    allEntriesBooleanQuery.addRequiredTerm(Field.ENTRY_CLASS_NAME, EmpDiscipline.class.getName());

    try {//  w w w.  j a  v a 2s .co m
        // add filter queries
        fullQuery.add(allEntriesBooleanQuery, BooleanClauseOccur.MUST);
        if (filterQueries != null && filterQueries.size() > 0) {
            for (Query query : filterQueries) {
                fullQuery.add(query, BooleanClauseOccur.MUST);
            }
        }

        final List<Document> documents = SearchEngineUtil
                .search(SearchEngineUtil.getDefaultSearchEngineId(), companyId, fullQuery, sort, start, end)
                .toList();
        LOGGER.info("RESULT SIZE: " + documents.size());

        return documents;

    } catch (SearchException e) {
        LogFactoryUtil.getLog(EmpDisciplineLocalServiceImpl.class).info(e);
    } catch (ParseException e) {
        LogFactoryUtil.getLog(EmpDisciplineLocalServiceImpl.class).info(e);
    }
    return new ArrayList<>();
}

From source file:vn.com.ecopharma.emp.service.impl.EmpDisciplineLocalServiceImpl.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<>();
    if (filters != null) {
        Date effectiveDateFrom = filters.get(EmpDisciplineField.EFFECTIVE_DATE_FROM) != null
                ? (Date) filters.get(EmpDisciplineField.EFFECTIVE_DATE_FROM)
                : null;/*from  w  w w  .  j  a  va2s  .com*/

        Date effectiveDateTo = filters.get(EmpDisciplineField.EFFECTIVE_DATE_TO) != null
                ? (Date) filters.get(EmpDisciplineField.EFFECTIVE_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);
                // TODO
                BooleanQuery stringFilterQuery = BooleanQueryFactoryUtil.create(searchContext);
                stringFilterQuery.addTerm(filterProperty, (String) filterValue, true, BooleanClauseOccur.MUST);
                queries.add(stringFilterQuery);

            } else if (filterValue instanceof List<?>) {
                queries.add(empLocalService.createStringListQuery(filterProperty, (List<String>) filterValue,
                        searchContext));
            } else if (filterValue instanceof Date) {
                Query effectiveDateQuery = empLocalService.createDateTermRangeQuery(
                        EmpDisciplineField.EFFECTIVE_DATE, effectiveDateFrom, effectiveDateTo, true, true,
                        searchContext);
                if (effectiveDateQuery != null) {
                    queries.add(effectiveDateQuery);
                }
            }
        }
    }
    /* SORT */
    if (sort == null) {
        sort = new Sort(EmpDisciplineField.ID, false);
    }
    return searchAllDocuments(searchContext, queries, companyId, sort, start, end);
}

From source file:vn.com.ecopharma.emp.service.impl.EmpDisciplineLocalServiceImpl.java

License:Open Source License

public Document getIndexedDocument(long id, SearchContext searchContext) {
    searchContext.setPortletIds(new String[] { EMInfo.PORTLET_ID });
    BooleanQuery fullQuery = BooleanQueryFactoryUtil.create(searchContext);
    BooleanQuery booleanQuery = BooleanQueryFactoryUtil.create(searchContext);
    booleanQuery.addRequiredTerm(Field.ENTRY_CLASS_NAME, EmpDiscipline.class.getName());
    booleanQuery.addExactTerm(EmpDisciplineField.ID, id);

    try {/* w  w  w .j a  v  a  2 s .  co m*/
        fullQuery.add(booleanQuery, BooleanClauseOccur.MUST);
        Hits hits = SearchEngineUtil.search(searchContext, fullQuery);
        return !hits.toList().isEmpty() ? hits.toList().get(0) : null;
    } catch (ParseException e) {
        LogFactoryUtil.getLog(EmpDisciplineLocalServiceImpl.class).info(e);
    } catch (SearchException e) {
        LogFactoryUtil.getLog(EmpDisciplineLocalServiceImpl.class).info(e);
    }

    return null;
}

From source file:vn.com.ecopharma.emp.service.impl.EmpLocalServiceImpl.java

License:Open Source License

@Override
public List<Document> searchAllUnDeletedEmpIndexedDocument(SearchContext searchContext,
        List<Query> filterQueries, long companyId, Sort sort, int start, int end) {

    final BooleanQuery fullQuery = BooleanQueryFactoryUtil.create(searchContext);
    final BooleanQuery allEmpEntriesBooleanQuery = BooleanQueryFactoryUtil.create(searchContext);
    final BooleanQuery noneDeletedEmpsBooleanQuery = BooleanQueryFactoryUtil.create(searchContext);

    allEmpEntriesBooleanQuery.addRequiredTerm(Field.ENTRY_CLASS_NAME, Emp.class.getName());
    noneDeletedEmpsBooleanQuery.addExactTerm(EmpField.IS_DELETED, "false");

    try {/*  w ww  .ja  va 2  s.c o m*/
        // add filter queries
        fullQuery.add(allEmpEntriesBooleanQuery, BooleanClauseOccur.MUST);
        if (filterQueries != null && !filterQueries.isEmpty()) {
            for (Query query : filterQueries) {
                fullQuery.add(query, BooleanClauseOccur.MUST);
            }
        }

        // always filter for none-delete item
        fullQuery.add(noneDeletedEmpsBooleanQuery, BooleanClauseOccur.MUST);

        LOGGER.info(fullQuery);

        final List<Document> documents = SearchEngineUtil
                .search(SearchEngineUtil.getDefaultSearchEngineId(), companyId, fullQuery, sort, start, end)
                .toList();
        LOGGER.info("RESULT SIZE: " + documents.size());

        return documents;

    } catch (SearchException e) {
        LOGGER.info(e);
    } catch (ParseException e) {
        LOGGER.info(e);
    }
    return new ArrayList<>();
}

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;/* w w  w.j av a2s. c  o  m*/

        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.emp.service.impl.EmpLocalServiceImpl.java

License:Open Source License

@Override
public List<Document> searchAllEmpDocs(SearchContext searchContext, List<Query> queries, long companyId) {
    BooleanQuery fullQuery = BooleanQueryFactoryUtil.create(searchContext);

    try {// w w  w  .  ja va2s .  co m
        for (Query query : queries) {
            fullQuery.add(query, BooleanClauseOccur.MUST);
        }

        LogFactoryUtil.getLog(fullQuery.toString());

        return SearchEngineUtil.search(SearchEngineUtil.getDefaultSearchEngineId(), companyId, fullQuery,
                new Sort("empId", false), QueryUtil.ALL_POS, QueryUtil.ALL_POS).toList();
    } catch (SearchException e) {
        LOGGER.info(e);
    } catch (ParseException e) {
        LOGGER.info(e);
    }
    return new ArrayList<>();
}

From source file:vn.com.ecopharma.emp.service.impl.EmpLocalServiceImpl.java

License:Open Source License

@Override
public Document getIndexedEmp(long employeeId, SearchContext searchContext) {
    searchContext.setPortletIds(new String[] { EMInfo.PORTLET_ID });
    BooleanQuery fullQuery = BooleanQueryFactoryUtil.create(searchContext);
    BooleanQuery booleanQuery = BooleanQueryFactoryUtil.create(searchContext);
    booleanQuery.addRequiredTerm(Field.ENTRY_CLASS_NAME, Emp.class.getName());
    booleanQuery.addExactTerm(EmpField.EMP_ID, employeeId);

    try {//from w w  w  .ja  v a2s .  c  o m
        fullQuery.add(booleanQuery, BooleanClauseOccur.MUST);
        Hits hits = SearchEngineUtil.search(searchContext, fullQuery);
        return !hits.toList().isEmpty() ? hits.toList().get(0) : null;
    } catch (ParseException e) {
        LOGGER.info(e);
    } catch (SearchException e) {
        LOGGER.info(e);
    }

    return null;
}

From source file:vn.com.ecopharma.emp.service.impl.PromotedHistoryLocalServiceImpl.java

License:Open Source License

public List<Document> searchAllDocuments(SearchContext searchContext, List<Query> filterQueries, long companyId,
        Sort sort, int start, int end) {

    LOGGER.info("FilterQueries size: " + filterQueries.size());
    final BooleanQuery fullQuery = BooleanQueryFactoryUtil.create(searchContext);
    final BooleanQuery allEmployeeEntriesBooleanQuery = BooleanQueryFactoryUtil.create(searchContext);
    final BooleanQuery noneDeletedEmployeesBooleanQuery = BooleanQueryFactoryUtil.create(searchContext);

    allEmployeeEntriesBooleanQuery.addRequiredTerm(Field.ENTRY_CLASS_NAME, PromotedHistory.class.getName());
    noneDeletedEmployeesBooleanQuery.addExactTerm(PromotedHistoryField.IS_DELETED, "false");

    try {/*ww  w  .  j  a v  a2  s.c  o m*/
        // add filter queries
        fullQuery.add(allEmployeeEntriesBooleanQuery, BooleanClauseOccur.MUST);
        if (filterQueries != null && filterQueries.size() > 0) {
            for (Query query : filterQueries) {
                fullQuery.add(query, BooleanClauseOccur.MUST);
            }
        }

        // always filter for none-delete item
        fullQuery.add(noneDeletedEmployeesBooleanQuery, BooleanClauseOccur.MUST);

        final List<Document> documents = SearchEngineUtil
                .search(SearchEngineUtil.getDefaultSearchEngineId(), companyId, fullQuery, sort, start, end)
                .toList();
        System.out.println("RESULT SIZE: " + documents.size());

        return documents;

    } catch (SearchException e) {
        LOGGER.info(e);
    } catch (ParseException e) {
        LOGGER.info(e);
    }
    return null;
}