List of usage examples for com.liferay.portal.kernel.search BooleanClauseOccur MUST_NOT
BooleanClauseOccur MUST_NOT
To view the source code for com.liferay.portal.kernel.search BooleanClauseOccur MUST_NOT.
Click Source Link
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; }/*from ww w.j a va 2 s.com*/ 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 ww w . j av a2s .co 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; }//w ww . j a v a2s .com 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; }//from w w w . ja v a 2 s . com return BooleanClauseOccur.SHOULD; }
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 ww. j a v a2s . c om*/ 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 w w w .j av a2 s . c o 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); } }