diff --git a/data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTSQueryParser.java b/data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTSQueryParser.java index 6664178ca3..c30a13a848 100644 --- a/data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTSQueryParser.java +++ b/data-model/src/main/java/org/alfresco/repo/search/impl/parsers/FTSQueryParser.java @@ -346,7 +346,7 @@ public class FTSQueryParser } constraints.add(constraint); } - if (constraints.size() == 1 && Occur.EXCLUDE != constraints.get(0).getOccur()) + if (constraints.size() == 1) { return constraints.get(0); } diff --git a/data-model/src/main/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/LuceneDisjunction.java b/data-model/src/main/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/LuceneDisjunction.java index b18b324f50..4e846b020c 100644 --- a/data-model/src/main/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/LuceneDisjunction.java +++ b/data-model/src/main/java/org/alfresco/repo/search/impl/querymodel/impl/lucene/LuceneDisjunction.java @@ -69,21 +69,20 @@ public class LuceneDisjunction extends BaseDisjunctio @SuppressWarnings("unchecked") LuceneQueryBuilderComponent luceneQueryBuilderComponent = (LuceneQueryBuilderComponent) constraint; Q constraintQuery = luceneQueryBuilderComponent.addComponent(selectors, functionArgs, luceneContext, functionContext); - queriestoDisjoin.add(new Pair(constraint, constraintQuery)); + queriestoDisjoin.add(new Pair<>(constraint, constraintQuery)); if (constraintQuery != null) { switch (constraint.getOccur()) { case DEFAULT: - case MANDATORY: case OPTIONAL: expressionBuilder.addOptional(constraintQuery, constraint.getBoost()); break; + case MANDATORY: + expressionBuilder.addRequired(constraintQuery, constraint.getBoost()); + break; case EXCLUDE: - QueryParserExpressionAdaptor subExpressionBuilder = luceneContext.getLuceneQueryParserAdaptor().getExpressionAdaptor(); - subExpressionBuilder.addRequired(luceneContext.getLuceneQueryParserAdaptor().getMatchAllNodesQuery()); - subExpressionBuilder.addExcluded(constraintQuery); - expressionBuilder.addOptional(subExpressionBuilder.getQuery(), constraint.getBoost()); + expressionBuilder.addExcluded(constraintQuery, constraint.getBoost()); break; } }