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);
}
if (constraints.size() == 1 && Occur.EXCLUDE != constraints.get(0).getOccur())
if (constraints.size() == 1)
{
return constraints.get(0);
}

View File

@@ -69,21 +69,20 @@ public class LuceneDisjunction<Q, S, E extends Throwable> extends BaseDisjunctio
@SuppressWarnings("unchecked")
LuceneQueryBuilderComponent<Q, S, E> luceneQueryBuilderComponent = (LuceneQueryBuilderComponent<Q, S, E>) constraint;
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)
{
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<Q, E> subExpressionBuilder = luceneContext.getLuceneQueryParserAdaptor().getExpressionAdaptor();
subExpressionBuilder.addRequired(luceneContext.getLuceneQueryParserAdaptor().getMatchAllNodesQuery());
subExpressionBuilder.addExcluded(constraintQuery);
expressionBuilder.addOptional(subExpressionBuilder.getQuery(), constraint.getBoost());
expressionBuilder.addExcluded(constraintQuery, constraint.getBoost());
break;
}
}