Fix/acs 2699 mandatory modifier (#1472)

[ACS-2699] managed + and - modifiers in fts query parser
This commit is contained in:
Elia Porciani
2022-10-09 10:47:18 +02:00
committed by GitHub
parent 3a5971e267
commit 75acf5110e
2 changed files with 6 additions and 7 deletions

View File

@@ -346,7 +346,7 @@ public class FTSQueryParser
} }
constraints.add(constraint); constraints.add(constraint);
} }
if (constraints.size() == 1 && Occur.EXCLUDE != constraints.get(0).getOccur()) if (constraints.size() == 1)
{ {
return constraints.get(0); return constraints.get(0);
} }

View File

@@ -69,21 +69,20 @@ public class LuceneDisjunction<Q, S, E extends Throwable> extends BaseDisjunctio
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
LuceneQueryBuilderComponent<Q, S, E> luceneQueryBuilderComponent = (LuceneQueryBuilderComponent<Q, S, E>) constraint; LuceneQueryBuilderComponent<Q, S, E> luceneQueryBuilderComponent = (LuceneQueryBuilderComponent<Q, S, E>) constraint;
Q constraintQuery = luceneQueryBuilderComponent.addComponent(selectors, functionArgs, luceneContext, functionContext); Q constraintQuery = luceneQueryBuilderComponent.addComponent(selectors, functionArgs, luceneContext, functionContext);
queriestoDisjoin.add(new Pair<Constraint, Q>(constraint, constraintQuery)); queriestoDisjoin.add(new Pair<>(constraint, constraintQuery));
if (constraintQuery != null) if (constraintQuery != null)
{ {
switch (constraint.getOccur()) switch (constraint.getOccur())
{ {
case DEFAULT: case DEFAULT:
case MANDATORY:
case OPTIONAL: case OPTIONAL:
expressionBuilder.addOptional(constraintQuery, constraint.getBoost()); expressionBuilder.addOptional(constraintQuery, constraint.getBoost());
break; break;
case MANDATORY:
expressionBuilder.addRequired(constraintQuery, constraint.getBoost());
break;
case EXCLUDE: case EXCLUDE:
QueryParserExpressionAdaptor<Q, E> subExpressionBuilder = luceneContext.getLuceneQueryParserAdaptor().getExpressionAdaptor(); expressionBuilder.addExcluded(constraintQuery, constraint.getBoost());
subExpressionBuilder.addRequired(luceneContext.getLuceneQueryParserAdaptor().getMatchAllNodesQuery());
subExpressionBuilder.addExcluded(constraintQuery);
expressionBuilder.addOptional(subExpressionBuilder.getQuery(), constraint.getBoost());
break; break;
} }
} }