Example usage for com.liferay.portal.kernel.search.filter BooleanFilter add

List of usage examples for com.liferay.portal.kernel.search.filter BooleanFilter add

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.search.filter BooleanFilter add.

Prototype

public Filter add(Filter filter, BooleanClauseOccur booleanClauseOccur) 

Source Link

Usage

From source file:com.liferay.asset.categories.internal.search.AssetCategoryIndexer.java

License:Open Source License

@Override
public void postProcessContextBooleanFilter(BooleanFilter contextBooleanFilter, SearchContext searchContext)
        throws Exception {

    long[] parentCategoryIds = (long[]) searchContext.getAttribute(Field.ASSET_PARENT_CATEGORY_IDS);

    if (!ArrayUtil.isEmpty(parentCategoryIds)) {
        TermsFilter parentCategoryTermsFilter = new TermsFilter(Field.ASSET_PARENT_CATEGORY_ID);

        parentCategoryTermsFilter.addValues(ArrayUtil.toStringArray(parentCategoryIds));

        contextBooleanFilter.add(parentCategoryTermsFilter, BooleanClauseOccur.MUST);
    }/*from w  ww . ja va2 s  .c  o m*/

    long[] vocabularyIds = (long[]) searchContext.getAttribute(Field.ASSET_VOCABULARY_IDS);

    if (!ArrayUtil.isEmpty(vocabularyIds)) {
        TermsFilter vocabularyTermsFilter = new TermsFilter(Field.ASSET_VOCABULARY_ID);

        vocabularyTermsFilter.addValues(ArrayUtil.toStringArray(vocabularyIds));

        contextBooleanFilter.add(vocabularyTermsFilter, BooleanClauseOccur.MUST);
    }
}

From source file:com.liferay.blade.samples.searchmodelprefiltercontributor.ModelPreFilterContributor.java

License:Apache License

@Override
public void contribute(BooleanFilter booleanFilter, ModelSearchSettings modelSearchSettings,
        SearchContext searchContext) {// ww w. j  av  a  2 s.c om

    RangeTermFilter rangeTermFilter = new RangeTermFilter(Field.CREATE_DATE, true, true, "now-1h", null);

    booleanFilter.add(rangeTermFilter, BooleanClauseOccur.MUST);
}

From source file:com.liferay.dynamic.data.lists.internal.search.DDLRecordIndexer.java

License:Open Source License

@Override
public void postProcessContextBooleanFilter(BooleanFilter contextBooleanFilter, SearchContext searchContext)
        throws Exception {

    int status = GetterUtil.getInteger(searchContext.getAttribute(Field.STATUS),
            WorkflowConstants.STATUS_APPROVED);

    if (status != WorkflowConstants.STATUS_ANY) {
        contextBooleanFilter.addRequiredTerm(Field.STATUS, status);
    }/*from   ww  w.  j  a  v  a 2s.co  m*/

    long recordSetId = GetterUtil.getLong(searchContext.getAttribute("recordSetId"));

    if (recordSetId > 0) {
        contextBooleanFilter.addRequiredTerm("recordSetId", recordSetId);
    }

    long recordSetScope = GetterUtil.getLong(searchContext.getAttribute("recordSetScope"),
            DDLRecordSetConstants.SCOPE_DYNAMIC_DATA_LISTS);

    contextBooleanFilter.addRequiredTerm("recordSetScope", recordSetScope);

    addSearchClassTypeIds(contextBooleanFilter, searchContext);

    String ddmStructureFieldName = (String) searchContext.getAttribute("ddmStructureFieldName");
    Serializable ddmStructureFieldValue = searchContext.getAttribute("ddmStructureFieldValue");

    if (Validator.isNotNull(ddmStructureFieldName) && Validator.isNotNull(ddmStructureFieldValue)) {

        QueryFilter queryFilter = ddmIndexer.createFieldValueQueryFilter(ddmStructureFieldName,
                ddmStructureFieldValue, searchContext.getLocale());

        contextBooleanFilter.add(queryFilter, BooleanClauseOccur.MUST);
    }
}

From source file:com.liferay.dynamic.data.mapping.internal.search.DDMFormInstanceRecordIndexer.java

License:Open Source License

@Override
public void postProcessContextBooleanFilter(BooleanFilter contextBooleanFilter, SearchContext searchContext)
        throws Exception {

    int status = GetterUtil.getInteger(searchContext.getAttribute(Field.STATUS),
            WorkflowConstants.STATUS_APPROVED);

    if (status != WorkflowConstants.STATUS_ANY) {
        contextBooleanFilter.addRequiredTerm(Field.STATUS, status);
    }//  ww w .j a v  a2  s  . co m

    long ddmFormInstanceId = GetterUtil.getLong(searchContext.getAttribute("ddmFormInstanceId"));

    if (ddmFormInstanceId > 0) {
        contextBooleanFilter.addRequiredTerm("ddmFormInstanceId", ddmFormInstanceId);
    }

    addSearchClassTypeIds(contextBooleanFilter, searchContext);

    String ddmStructureFieldName = (String) searchContext.getAttribute("ddmStructureFieldName");
    Serializable ddmStructureFieldValue = searchContext.getAttribute("ddmStructureFieldValue");

    if (Validator.isNotNull(ddmStructureFieldName) && Validator.isNotNull(ddmStructureFieldValue)) {

        QueryFilter queryFilter = ddmIndexer.createFieldValueQueryFilter(ddmStructureFieldName,
                ddmStructureFieldValue, searchContext.getLocale());

        contextBooleanFilter.add(queryFilter, BooleanClauseOccur.MUST);
    }
}

From source file:com.liferay.journal.search.JournalArticleIndexer.java

License:Open Source License

@Override
public void postProcessContextBooleanFilter(BooleanFilter contextBooleanFilter, SearchContext searchContext)
        throws Exception {

    Long classNameId = (Long) searchContext.getAttribute(Field.CLASS_NAME_ID);

    if ((classNameId != null) && (classNameId != 0)) {
        contextBooleanFilter.addRequiredTerm(Field.CLASS_NAME_ID, classNameId.toString());
    }//from w w  w. j  ava  2s  .co  m

    addStatus(contextBooleanFilter, searchContext);

    addSearchClassTypeIds(contextBooleanFilter, searchContext);

    String ddmStructureFieldName = (String) searchContext.getAttribute("ddmStructureFieldName");
    Serializable ddmStructureFieldValue = searchContext.getAttribute("ddmStructureFieldValue");

    if (Validator.isNotNull(ddmStructureFieldName) && Validator.isNotNull(ddmStructureFieldValue)) {

        QueryFilter queryFilter = _ddmIndexer.createFieldValueQueryFilter(ddmStructureFieldName,
                ddmStructureFieldValue, searchContext.getLocale());

        contextBooleanFilter.add(queryFilter, BooleanClauseOccur.MUST);
    }

    String ddmStructureKey = (String) searchContext.getAttribute("ddmStructureKey");

    if (Validator.isNotNull(ddmStructureKey)) {
        contextBooleanFilter.addRequiredTerm("ddmStructureKey", ddmStructureKey);
    }

    String ddmTemplateKey = (String) searchContext.getAttribute("ddmTemplateKey");

    if (Validator.isNotNull(ddmTemplateKey)) {
        contextBooleanFilter.addRequiredTerm("ddmTemplateKey", ddmTemplateKey);
    }

    boolean head = GetterUtil.getBoolean(searchContext.getAttribute("head"), Boolean.TRUE);
    boolean relatedClassName = GetterUtil.getBoolean(searchContext.getAttribute("relatedClassName"));
    boolean showNonindexable = GetterUtil.getBoolean(searchContext.getAttribute("showNonindexable"));

    if (head && !relatedClassName && !showNonindexable) {
        contextBooleanFilter.addRequiredTerm("head", Boolean.TRUE);
    }

    if (!relatedClassName && showNonindexable) {
        contextBooleanFilter.addRequiredTerm("headListable", Boolean.TRUE);
    }
}

From source file:com.liferay.message.boards.internal.search.MBMessageIndexer.java

License:Open Source License

@Override
public void postProcessContextBooleanFilter(BooleanFilter contextBooleanFilter, SearchContext searchContext)
        throws Exception {

    addStatus(contextBooleanFilter, searchContext);

    boolean discussion = GetterUtil.getBoolean(searchContext.getAttribute("discussion"));

    contextBooleanFilter.addRequiredTerm("discussion", discussion);

    if (searchContext.isIncludeDiscussions()) {
        addRelatedClassNames(contextBooleanFilter, searchContext);
    }//from ww  w .ja  v a 2s. c o m

    String classNameId = GetterUtil.getString(searchContext.getAttribute(Field.CLASS_NAME_ID));

    if (Validator.isNotNull(classNameId)) {
        contextBooleanFilter.addRequiredTerm(Field.CLASS_NAME_ID, classNameId);
    }

    long threadId = GetterUtil.getLong((String) searchContext.getAttribute("threadId"));

    if (threadId > 0) {
        contextBooleanFilter.addRequiredTerm("threadId", threadId);
    }

    long[] categoryIds = searchContext.getCategoryIds();

    if ((categoryIds != null) && (categoryIds.length > 0)
            && (categoryIds[0] != MBCategoryConstants.DEFAULT_PARENT_CATEGORY_ID)) {

        TermsFilter categoriesTermsFilter = new TermsFilter(Field.CATEGORY_ID);

        for (long categoryId : categoryIds) {
            try {
                mbCategoryService.getCategory(categoryId);
            } catch (PortalException pe) {
                if (_log.isDebugEnabled()) {
                    _log.debug("Unable to get message boards category " + categoryId, pe);
                }

                continue;
            }

            categoriesTermsFilter.addValue(String.valueOf(categoryId));
        }

        if (!categoriesTermsFilter.isEmpty()) {
            contextBooleanFilter.add(categoriesTermsFilter, BooleanClauseOccur.MUST);
        }
    }
}

From source file:com.liferay.trash.internal.search.TrashIndexer.java

License:Open Source License

@Override
public BooleanQuery getFullQuery(SearchContext searchContext) throws SearchException {

    try {/*from  w w w .ja v  a 2 s .c o  m*/
        BooleanFilter fullQueryBooleanFilter = new BooleanFilter();

        fullQueryBooleanFilter.addRequiredTerm(Field.COMPANY_ID, searchContext.getCompanyId());

        List<TrashHandler> trashHandlers = TrashHandlerRegistryUtil.getTrashHandlers();

        for (TrashHandler trashHandler : trashHandlers) {
            Filter filter = trashHandler.getExcludeFilter(searchContext);

            if (filter != null) {
                fullQueryBooleanFilter.add(filter, BooleanClauseOccur.MUST_NOT);
            }

            processTrashHandlerExcludeQuery(searchContext, fullQueryBooleanFilter, trashHandler);
        }

        long[] groupIds = searchContext.getGroupIds();

        if (ArrayUtil.isNotEmpty(groupIds)) {
            TermsFilter groupTermsFilter = new TermsFilter(Field.GROUP_ID);

            groupTermsFilter.addValues(ArrayUtil.toStringArray(groupIds));

            fullQueryBooleanFilter.add(groupTermsFilter, BooleanClauseOccur.MUST);
        }

        fullQueryBooleanFilter.addRequiredTerm(Field.STATUS, WorkflowConstants.STATUS_IN_TRASH);

        BooleanQuery fullQuery = createFullQuery(fullQueryBooleanFilter, searchContext);

        return fullQuery;
    } catch (SearchException se) {
        throw se;
    } catch (Exception e) {
        throw new SearchException(e);
    }
}

From source file:com.liferay.trash.internal.search.TrashIndexer.java

License:Open Source License

/**
 * @deprecated As of 1.0.0, added strictly to support backwards
 *             compatibility of {@link/*from ww w .  j  av a 2  s.co m*/
 *             TrashHandler#getExcludeQuery(SearchContext)}
 */
@Deprecated
protected void processTrashHandlerExcludeQuery(SearchContext searchContext,
        BooleanFilter fullQueryBooleanFilter, TrashHandler trashHandler) {

    Query query = trashHandler.getExcludeQuery(searchContext);

    if (query != null) {
        fullQueryBooleanFilter.add(new QueryFilter(query), BooleanClauseOccur.MUST_NOT);
    }
}

From source file:com.liferay.users.admin.internal.search.UserIndexer.java

License:Open Source License

protected void addContextQueryParams(BooleanFilter contextFilter, SearchContext searchContext, String key,
        Object value) throws Exception {

    if (key.equals("usersGroups")) {
        if (value instanceof Long[]) {
            Long[] values = (Long[]) value;

            if (ArrayUtil.isEmpty(values)) {
                return;
            }//from   ww  w  .  j  a  v  a  2 s.c o m

            TermsFilter userGroupsTermsFilter = new TermsFilter("groupIds");

            userGroupsTermsFilter.addValues(ArrayUtil.toStringArray(values));

            contextFilter.add(userGroupsTermsFilter, BooleanClauseOccur.MUST);
        } else {
            contextFilter.addRequiredTerm("groupIds", String.valueOf(value));
        }
    } else if (key.equals("usersOrgs")) {
        if (value instanceof Long[]) {
            Long[] values = (Long[]) value;

            if (ArrayUtil.isEmpty(values)) {
                return;
            }

            TermsFilter organizationsTermsFilter = new TermsFilter("organizationIds");
            TermsFilter ancestorOrgsTermsFilter = new TermsFilter("ancestorOrganizationIds");

            String[] organizationIdsStrings = ArrayUtil.toStringArray(values);

            ancestorOrgsTermsFilter.addValues(organizationIdsStrings);

            organizationsTermsFilter.addValues(organizationIdsStrings);

            BooleanFilter userOrgsBooleanFilter = new BooleanFilter();

            userOrgsBooleanFilter.add(ancestorOrgsTermsFilter);
            userOrgsBooleanFilter.add(organizationsTermsFilter);

            contextFilter.add(userOrgsBooleanFilter, BooleanClauseOccur.MUST);
        } else {
            contextFilter.addRequiredTerm("organizationIds", String.valueOf(value));
        }
    } else if (key.equals("usersOrgsCount")) {
        contextFilter.addRequiredTerm("organizationCount", String.valueOf(value));
    } else if (key.equals("usersRoles")) {
        contextFilter.addRequiredTerm("roleIds", String.valueOf(value));
    } else if (key.equals("usersTeams")) {
        contextFilter.addRequiredTerm("teamIds", String.valueOf(value));
    } else if (key.equals("usersUserGroups")) {
        contextFilter.addRequiredTerm("userGroupIds", String.valueOf(value));
    }
}

From source file:com.liferay.wiki.search.WikiPageIndexer.java

License:Open Source License

@Override
public void postProcessContextBooleanFilter(BooleanFilter contextBooleanFilter, SearchContext searchContext)
        throws Exception {

    addStatus(contextBooleanFilter, searchContext);

    long[] nodeIds = searchContext.getNodeIds();

    if (ArrayUtil.isNotEmpty(nodeIds)) {
        TermsFilter nodesIdTermsFilter = new TermsFilter(Field.NODE_ID);

        for (long nodeId : nodeIds) {
            try {
                _wikiNodeService.getNode(nodeId);
            } catch (Exception e) {
                if (_log.isDebugEnabled()) {
                    _log.debug("Unable to get wiki node " + nodeId, e);
                }/*w w w  . java  2s .  com*/

                continue;
            }

            nodesIdTermsFilter.addValue(String.valueOf(nodeId));
        }

        if (!nodesIdTermsFilter.isEmpty()) {
            contextBooleanFilter.add(nodesIdTermsFilter, BooleanClauseOccur.MUST);
        }
    }
}