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: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 {/*  w w w  . j  av a 2 s .  co 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.library.slayer.service.impl.LMSBookLocalServiceImpl.java

License:Open Source License

/**
 * @param fieldName//www.j  av a 2s  .c om
 * @param value
 * @param searchContext
 * @param fullQuery
 * @return
 */
private BooleanQuery createQuery(String fieldName, String value, SearchContext searchContext,
        BooleanQuery fullQuery) {
    BooleanQuery searchQuery = BooleanQueryFactoryUtil.create(searchContext);
    String[] splitValue = value.split(",");
    for (String splitVal : splitValue) {
        try {
            searchQuery.addTerm(fieldName, splitVal.replace(" ", ","));
        } catch (ParseException e) {

        }
    }
    try {
        fullQuery.add(searchQuery, BooleanClauseOccur.MUST);
    } catch (ParseException e) {

    }
    return fullQuery;
}

From source file:com.library.slayer.service.impl.LMSBookLocalServiceImpl.java

License:Open Source License

public List<LMSBook> advanceSearchAll(long companyId, long groupId, String title, String author, String desc,
        String type) {//w  w  w  .j  av  a 2  s . co m

    SearchContext searchContext = new SearchContext();
    searchContext.setCompanyId(companyId);
    searchContext.setEntryClassNames(CLASS_NAMES);

    BooleanQuery contextQuery = BooleanQueryFactoryUtil.create(searchContext);
    contextQuery.addRequiredTerm(Field.COMPANY_ID, companyId);
    contextQuery.addRequiredTerm(Field.PORTLET_ID,
            Long.toString(ClassNameLocalServiceUtil.getClassNameId(LMSBook.class)));

    BooleanQuery fullQuery = BooleanQueryFactoryUtil.create(searchContext);
    fullQuery.setQueryConfig(searchContext.getQueryConfig());
    try {
        fullQuery.add(contextQuery, BooleanClauseOccur.MUST);
    } catch (ParseException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }

    BooleanQuery searchQuery = BooleanQueryFactoryUtil.create(searchContext);
    Hits hits = null;

    if (Validator.isNotNull(title)) {
        Sort sort = new Sort(Field.TITLE, true);
        searchContext.setSorts(new Sort[] { sort });

        fullQuery = createQuery(Field.TITLE, title, searchContext, fullQuery);

    }
    if (Validator.isNotNull(author)) {
        fullQuery = createQuery(Field.NAME, author, searchContext, fullQuery);
    }
    if (Validator.isNotNull(desc)) {
        fullQuery = createQuery(Field.DESCRIPTION, desc, searchContext, fullQuery);
    }

    if (searchQuery.clauses().size() > 0) {
        try {
            fullQuery.add(searchQuery, BooleanClauseOccur.MUST);
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    try {
        hits = SearchEngineUtil.search(searchContext, fullQuery);
    } catch (SearchException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    List<LMSBook> books = new ArrayList<LMSBook>();

    if (hits != null && hits.getLength() > 0) {
        for (Document document : hits.getDocs()) {

            long bookId = Long.parseLong(document.get(Field.ENTRY_CLASS_PK));
            try {
                LMSBook book = LMSBookLocalServiceUtil.getLMSBook(bookId);
                books.add(book);
            } catch (PortalException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (SystemException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }
    return books;
}

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  .  j  a  v a  2s .  c om*/

    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) {/*  w  ww .j  a va 2  s. co m*/

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

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

From source file:com.liferay.configuration.admin.web.internal.search.ConfigurationModelIndexer.java

License:Open Source License

@Override
protected BooleanQuery createFullQuery(BooleanFilter fullQueryBooleanFilter, SearchContext searchContext)
        throws Exception {

    BooleanQuery searchQuery = new BooleanQueryImpl();

    addSearchLocalizedTerm(searchQuery, searchContext, Field.DESCRIPTION, false);
    addSearchLocalizedTerm(searchQuery, searchContext, Field.TITLE, false);
    addSearchTerm(searchQuery, searchContext, FieldNames.CONFIGURATION_MODEL_ATTRIBUTE_DESCRIPTION, false);
    addSearchTerm(searchQuery, searchContext, FieldNames.CONFIGURATION_MODEL_ATTRIBUTE_NAME, false);
    addSearchTerm(searchQuery, searchContext, FieldNames.CONFIGURATION_MODEL_FACTORY_PID, false);
    addSearchTerm(searchQuery, searchContext, FieldNames.CONFIGURATION_MODEL_ID, false);

    BooleanQuery fullBooleanQuery = new BooleanQueryImpl();

    if (fullQueryBooleanFilter.hasClauses()) {
        fullBooleanQuery.setPreBooleanFilter(fullQueryBooleanFilter);
    }/*w  ww .  j  a  v a 2 s . c  o  m*/

    fullBooleanQuery.add(searchQuery, BooleanClauseOccur.MUST);

    return fullBooleanQuery;
}

From source file:com.liferay.document.library.repository.cmis.search.BaseCmisSearchQueryBuilder.java

License:Open Source License

protected void traverseContentQuery(CMISJunction cmisJunction, Query query, QueryConfig queryConfig)
        throws SearchException {

    if (query instanceof BooleanQuery) {
        BooleanQuery booleanQuery = (BooleanQuery) query;

        List<BooleanClause<Query>> booleanClauses = booleanQuery.clauses();

        CMISFullTextConjunction anyCMISConjunction = new CMISFullTextConjunction();
        CMISDisjunction cmisDisjunction = new CMISDisjunction();
        CMISFullTextConjunction notCMISConjunction = new CMISFullTextConjunction();

        for (BooleanClause<Query> booleanClause : booleanClauses) {
            CMISJunction currentCMISJunction = cmisDisjunction;

            BooleanClauseOccur booleanClauseOccur = booleanClause.getBooleanClauseOccur();

            if (booleanClauseOccur.equals(BooleanClauseOccur.MUST)) {
                currentCMISJunction = anyCMISConjunction;
            } else if (booleanClauseOccur.equals(BooleanClauseOccur.MUST_NOT)) {

                currentCMISJunction = notCMISConjunction;
            }/*  www  .ja  v a  2  s  .  c  om*/

            Query booleanClauseQuery = booleanClause.getClause();

            traverseContentQuery(currentCMISJunction, booleanClauseQuery, queryConfig);
        }

        if (!anyCMISConjunction.isEmpty()) {
            cmisJunction.add(anyCMISConjunction);
        }

        if (!cmisDisjunction.isEmpty()) {
            cmisJunction.add(cmisDisjunction);
        }

        if (!notCMISConjunction.isEmpty()) {
            CMISContainsNotExpression cmisContainsNotExpression = new CMISContainsNotExpression(
                    notCMISConjunction);

            cmisJunction.add(cmisContainsNotExpression);
        }
    } else if (query instanceof TermQuery) {
        TermQuery termQuery = (TermQuery) query;

        QueryTerm queryTerm = termQuery.getQueryTerm();

        if (!_isContentFieldQueryTerm(queryTerm)) {
            return;
        }

        String field = queryTerm.getField();
        String value = queryTerm.getValue();

        value = CMISParameterValueUtil.formatParameterValue(field, value, false, queryConfig);

        CMISContainsValueExpression cmisContainsValueExpression = new CMISContainsValueExpression(value);

        cmisJunction.add(cmisContainsValueExpression);
    } else if (query instanceof WildcardQuery) {
        WildcardQuery wildcardQuery = (WildcardQuery) query;

        QueryTerm queryTerm = wildcardQuery.getQueryTerm();

        if (!_isContentFieldQueryTerm(queryTerm)) {
            return;
        }

        String value = queryTerm.getValue();

        String[] terms = value.split(_STAR_PATTERN);

        CMISConjunction cmisConjunction = new CMISConjunction();

        for (String term : terms) {
            if (Validator.isNotNull(term)) {
                CMISContainsValueExpression containsValueExpression = new CMISContainsValueExpression(term);

                cmisConjunction.add(containsValueExpression);
            }
        }

        cmisJunction.add(cmisConjunction);
    } else if (query instanceof TermRangeQuery) {
        return;
    }
}

From source file:com.liferay.document.library.repository.cmis.search.BaseCmisSearchQueryBuilder.java

License:Open Source License

protected void traversePropertiesQuery(CMISJunction cmisJunction, Query query, QueryConfig queryConfig)
        throws SearchException {

    if (query instanceof BooleanQuery) {
        BooleanQuery booleanQuery = (BooleanQuery) query;

        List<BooleanClause<Query>> booleanClauses = booleanQuery.clauses();

        CMISConjunction anyCMISConjunction = new CMISConjunction();
        CMISDisjunction cmisDisjunction = new CMISDisjunction();
        CMISConjunction notCMISConjunction = new CMISConjunction();

        for (BooleanClause<Query> booleanClause : booleanClauses) {
            CMISJunction currentCMISJunction = cmisDisjunction;

            BooleanClauseOccur booleanClauseOccur = booleanClause.getBooleanClauseOccur();

            if (booleanClauseOccur.equals(BooleanClauseOccur.MUST)) {
                currentCMISJunction = anyCMISConjunction;
            } else if (booleanClauseOccur.equals(BooleanClauseOccur.MUST_NOT)) {

                currentCMISJunction = notCMISConjunction;
            }//from w  w  w.  ja v a 2 s .c  o  m

            Query booleanClauseQuery = booleanClause.getClause();

            traversePropertiesQuery(currentCMISJunction, booleanClauseQuery, queryConfig);
        }

        if (!anyCMISConjunction.isEmpty()) {
            cmisJunction.add(anyCMISConjunction);
        }

        if (!cmisDisjunction.isEmpty()) {
            cmisJunction.add(cmisDisjunction);
        }

        if (!notCMISConjunction.isEmpty()) {
            cmisJunction.add(new CMISNotExpression(notCMISConjunction));
        }
    } else if (query instanceof MatchQuery) {
        MatchQuery matchQuery = (MatchQuery) query;

        if (!isSupportedField(matchQuery.getField())) {
            return;
        }

        CMISCriterion cmisCriterion = buildFieldExpression(matchQuery.getField(), matchQuery.getValue(),
                CMISSimpleExpressionOperator.EQ, queryConfig);

        if (cmisCriterion != null) {
            cmisJunction.add(cmisCriterion);
        }
    } else if (query instanceof TermQuery) {
        TermQuery termQuery = (TermQuery) query;

        QueryTerm queryTerm = termQuery.getQueryTerm();

        if (!isSupportedField(queryTerm.getField())) {
            return;
        }

        CMISCriterion cmisCriterion = buildFieldExpression(queryTerm.getField(), queryTerm.getValue(),
                CMISSimpleExpressionOperator.EQ, queryConfig);

        if (cmisCriterion != null) {
            cmisJunction.add(cmisCriterion);
        }
    } else if (query instanceof TermRangeQuery) {
        TermRangeQuery termRangeQuery = (TermRangeQuery) query;

        if (!isSupportedField(termRangeQuery.getField())) {
            return;
        }

        String fieldName = termRangeQuery.getField();

        String cmisField = getCmisField(fieldName);
        String cmisLowerTerm = CMISParameterValueUtil.formatParameterValue(fieldName,
                termRangeQuery.getLowerTerm(), false, queryConfig);
        String cmisUpperTerm = CMISParameterValueUtil.formatParameterValue(fieldName,
                termRangeQuery.getUpperTerm(), false, queryConfig);

        CMISCriterion cmisCriterion = new CMISBetweenExpression(cmisField, cmisLowerTerm, cmisUpperTerm,
                termRangeQuery.includesLower(), termRangeQuery.includesUpper());

        cmisJunction.add(cmisCriterion);
    } else if (query instanceof WildcardQuery) {
        WildcardQuery wildcardQuery = (WildcardQuery) query;

        QueryTerm queryTerm = wildcardQuery.getQueryTerm();

        if (!isSupportedField(queryTerm.getField())) {
            return;
        }

        CMISCriterion cmisCriterion = buildFieldExpression(queryTerm.getField(), queryTerm.getValue(),
                CMISSimpleExpressionOperator.LIKE, queryConfig);

        if (cmisCriterion != null) {
            cmisJunction.add(cmisCriterion);
        }
    }
}

From source file:com.liferay.document.library.repository.search.internal.LuceneRepositorySearchQueryTermBuilder.java

License:Open Source License

protected org.apache.lucene.search.BooleanClause.Occur getBooleanClauseOccur(BooleanClauseOccur occur) {

    if (occur.equals(BooleanClauseOccur.MUST)) {
        return org.apache.lucene.search.BooleanClause.Occur.MUST;
    } else if (occur.equals(BooleanClauseOccur.MUST_NOT)) {
        return org.apache.lucene.search.BooleanClause.Occur.MUST_NOT;
    }//from   ww w .ja  va  2 s  .c o m

    return org.apache.lucene.search.BooleanClause.Occur.SHOULD;
}

From source file:com.liferay.document.library.repository.search.internal.LuceneRepositorySearchQueryTermBuilder.java

License:Open Source License

protected BooleanClauseOccur getBooleanClauseOccur(org.apache.lucene.search.BooleanClause.Occur occur) {

    if (occur.equals(org.apache.lucene.search.BooleanClause.Occur.MUST)) {
        return BooleanClauseOccur.MUST;
    } else if (occur.equals(org.apache.lucene.search.BooleanClause.Occur.MUST_NOT)) {

        return BooleanClauseOccur.MUST_NOT;
    }/*ww  w  . j  a  v a2 s .  c  o m*/

    return BooleanClauseOccur.SHOULD;
}