From 32a524eb1f3f2a8203d8e5b91ee218fbdecf357c Mon Sep 17 00:00:00 2001 From: Elia Porciani Date: Tue, 25 Oct 2022 14:16:26 +0200 Subject: [PATCH] Revert "Fix/acs 2699 mandatory modifier (#1472)" (#1520) [ACS-3854] This reverts commit 75acf5110e14480c5f8027329e5013211dab59ae. --- .../repo/search/impl/parsers/FTSQueryParser.java | 2 +- .../querymodel/impl/lucene/LuceneDisjunction.java | 11 ++++++----- 2 files changed, 7 insertions(+), 6 deletions(-) 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 c30a13a848..6664178ca3 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) + if (constraints.size() == 1 && Occur.EXCLUDE != constraints.get(0).getOccur()) { 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 4e846b020c..b18b324f50 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,20 +69,21 @@ 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: - expressionBuilder.addExcluded(constraintQuery, constraint.getBoost()); + QueryParserExpressionAdaptor subExpressionBuilder = luceneContext.getLuceneQueryParserAdaptor().getExpressionAdaptor(); + subExpressionBuilder.addRequired(luceneContext.getLuceneQueryParserAdaptor().getMatchAllNodesQuery()); + subExpressionBuilder.addExcluded(constraintQuery); + expressionBuilder.addOptional(subExpressionBuilder.getQuery(), constraint.getBoost()); break; } }