Example usage for com.liferay.portal.kernel.search BooleanQuery addExactTerm

List of usage examples for com.liferay.portal.kernel.search BooleanQuery addExactTerm

Introduction

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

Prototype

public Query addExactTerm(String field, String value);

Source Link

Usage

From source file:com.ext.portlet.Activity.ActivityUtil.java

License:Open Source License

private static Hits getAggregatedActivitySearchResults(long userId, int start, int end) throws SearchException {
    SearchContext context = new SearchContext();
    context.setCompanyId(DEFAULT_COMPANY_ID);
    BooleanQuery query = BooleanQueryFactoryUtil.create(context);
    query.addRequiredTerm(Field.ENTRY_CLASS_NAME, SocialActivity.class.getName());

    BooleanQuery subQuery = BooleanQueryFactoryUtil.create(context);
    subQuery.addExactTerm("userId", userId);

    try {// www  .j  a  v a 2s.  c o m
        query.add(subQuery, BooleanClauseOccur.MUST);
    } catch (ParseException e) {
        _log.error(e);
    }

    Sort sort = SortFactoryUtil.create("createDate", Sort.FLOAT_TYPE, true);
    return SearchEngineUtil.search(SearchEngineUtil.getDefaultSearchEngineId(), context.getCompanyId(), query,
            sort, start, end);
}

From source file:com.ext.portlet.Activity.ActivityUtil.java

License:Open Source License

private static Hits getAggregatedActivitySearchResultsExcludingUsers(List<Long> excludedUserIds, int start,
        int end) throws SearchException {
    SearchContext context = new SearchContext();
    context.setCompanyId(DEFAULT_COMPANY_ID);
    BooleanQuery query = BooleanQueryFactoryUtil.create(context);
    query.addRequiredTerm(Field.ENTRY_CLASS_NAME, SocialActivity.class.getName());

    BooleanQuery excludeQuery = BooleanQueryFactoryUtil.create(context);
    for (Long excludedUserId : excludedUserIds) {
        excludeQuery.addExactTerm("userId", excludedUserId);
    }//from w  ww  .j a  v  a  2 s  .  com

    try {
        query.add(excludeQuery, BooleanClauseOccurImpl.MUST_NOT);
    } catch (ParseException e) {
        _log.error(e);
    }

    Sort sort = SortFactoryUtil.create("createDate", Sort.FLOAT_TYPE, true);
    return SearchEngineUtil.search(SearchEngineUtil.getDefaultSearchEngineId(), context.getCompanyId(), query,
            sort, start, end);
}

From source file:org.fit.portlet.service.service.impl.InserFitxaPersonalLocalServiceImpl.java

License:Open Source License

private Hits searchFitxaPersonalHits(long companyId, long groupId, long[] organizationIds, String searchText,
        long tecnicReferent, long codiProjecte, long serveiSocial, int start, int end, String orderByCol,
        String orderByType) {/* w  w  w .  java2 s.c  o m*/

    try {
        String searchEngineId = SearchEngineUtil.getDefaultSearchEngineId();

        SearchEngine searchEngine = SearchEngineUtil.getSearchEngine(searchEngineId);

        BooleanQueryFactory booleanQueryFactory = searchEngine.getBooleanQueryFactory();

        BooleanQuery query = booleanQueryFactory.create();

        // Context query
        query.addRequiredTerm(Field.COMPANY_ID, companyId);

        query.addRequiredTerm(Field.CLASS_NAME_ID, InserFitxaPersonal.class.getName());

        if (groupId > -1) {
            query.addRequiredTerm(Field.GROUP_ID, groupId);
        }

        if (Validator.isNotNull(organizationIds)) {

            BooleanQuery organizationQuery = booleanQueryFactory.create();

            if (organizationIds.length > 1 && organizationIds[0] == -2) {

                BooleanQuery q = booleanQueryFactory.create();

                SearchContext searchContext = new SearchContext();
                TermRangeQuery oq = TermRangeQueryFactoryUtil.create(searchContext, Field.ORGANIZATION_ID, "-1",
                        "0", true, false);

                q.add(oq, BooleanClauseOccur.SHOULD);

                // L'usuari vol veure tots els que estan sense localitzaci
                query.add(q, BooleanClauseOccur.MUST);
            } else {

                for (long idorg : organizationIds) {
                    if (idorg > -1) {
                        organizationQuery.addTerm(Field.ORGANIZATION_ID, idorg);
                    }
                }
            }

            if (organizationQuery.hasClauses()) {
                query.add(organizationQuery, BooleanClauseOccur.MUST);
            }

        }

        if (Validator.isNotNull(searchText)) {

            BooleanQuery searchTextQuery = booleanQueryFactory.create();

            searchTextQuery.addExactTerm(GestioPersonesIndexConstants.NUM_EXPEDIENT, searchText);
            searchTextQuery.addExactTerm(GestioPersonesIndexConstants.DNI, searchText);
            searchTextQuery.addTerm(Field.DESCRIPTION, searchText);
            searchTextQuery.addTerm(Field.TITLE, searchText);
            searchTextQuery.addTerm(GestioPersonesIndexConstants.TECNIC_REFERENT, searchText);
            searchTextQuery.addTerm(GestioPersonesIndexConstants.OBSERVACIONS, searchText);
            searchTextQuery.addTerm(GestioPersonesIndexConstants.SEGUIMENT_ITINERARI, searchText);
            searchTextQuery.addTerm(GestioPersonesIndexConstants.SEGUIMENT_ITINERARI, searchText);

            query.add(searchTextQuery, BooleanClauseOccur.MUST);

        }
        // Cerca avanada
        if (tecnicReferent > -1) {
            query.addRequiredTerm(GestioPersonesIndexConstants.TECNIC_REFERENT_ID, tecnicReferent);
        }

        if (codiProjecte > -1) {
            query.addRequiredTerm(GestioPersonesIndexConstants.CODI_PROJECTE_ID, codiProjecte);
        }

        if (serveiSocial > -1) {
            query.addRequiredTerm(GestioPersonesIndexConstants.SERVEI_SOCIAL_ID, serveiSocial);
        }

        Sort sort = new Sort();
        sort.setReverse(false);

        if (Validator.isNotNull(orderByCol)) {

            int type = getType(orderByCol);

            sort.setType(type);

            sort.setFieldName(orderByCol);

            if (Validator.isNotNull(orderByType)) {

                if (orderByType.equalsIgnoreCase("desc")) {
                    sort.setReverse(true);
                }

            }

        }

        log.info(query.toString() + " " + sort.toString());

        Hits search = SearchEngineUtil.search(searchEngineId, companyId, query, sort, start, end);

        return search;
    } catch (SearchException e) {
        log.error(e);
    } catch (ParseException e) {
        log.error(e);
    }

    return null;
}

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 ava  2  s  .c  om*/
        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.EmpAnnualLeaveLocalServiceImpl.java

License:Open Source License

public void removeAllIndexes(SearchContext searchContext, long companyId) {
    final BooleanQuery booleanQuery = BooleanQueryFactoryUtil.create(searchContext);
    booleanQuery.addExactTerm(Field.ENTRY_CLASS_NAME, EmpAnnualLeave.class.getName());
    try {//  w  w w . ja  v  a2 s  .c o m
        final Hits hits = SearchEngineUtil.search(SearchEngineUtil.getDefaultSearchEngineId(), companyId,
                booleanQuery, QueryUtil.ALL_POS, QueryUtil.ALL_POS);
        final List<Document> docs = hits.toList();
        for (Document doc : docs) {
            LOGGER.info("DELETE EmpAnnualLeave Index UID: " + doc.getUID());
            SearchEngineUtil.deleteDocument(SearchEngineUtil.getDefaultSearchEngineId(), companyId,
                    doc.getUID());

        }
    } catch (SearchException e) {
        e.printStackTrace();
    }
}

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 {/*from   www .  j ava  2 s.c om*/
        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 {/* ww  w . j  ava 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

@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 {/* ww  w. j ava 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) {
        LOGGER.info(e);
    } catch (SearchException e) {
        LOGGER.info(e);
    }

    return null;
}

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

License:Open Source License

@Override
public void removeAllEmpIndexes(SearchContext searchContext, long companyId) {
    final BooleanQuery booleanQuery = BooleanQueryFactoryUtil.create(searchContext);
    booleanQuery.addExactTerm(Field.ENTRY_CLASS_NAME, Emp.class.getName());
    try {/*from w  ww .  j  av  a  2s .co  m*/
        final Hits hits = SearchEngineUtil.search(SearchEngineUtil.getDefaultSearchEngineId(), companyId,
                booleanQuery, QueryUtil.ALL_POS, QueryUtil.ALL_POS);
        final List<Document> docs = hits.toList();
        for (Document doc : docs) {
            SearchEngineUtil.deleteDocument(SearchEngineUtil.getDefaultSearchEngineId(), companyId,
                    doc.getUID());

        }
    } catch (SearchException e) {
        LOGGER.info(e);
    }
}

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 {/*w ww .j a  va 2  s .  c om*/
        // 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;
}