@@ -438,19 +438,19 @@ public static Map<String, Integer> countAttributesAcrossResolvers(Model model, L
438438 }
439439
440440 /**
441- * Group resolvers by their level of priority .
441+ * Group resolvers by their level of weight .
442442 *
443443 * @param model The entity model.
444444 * @param resolvers The names of the resolvers to reference in the entity model.
445- * @return For each priority level, the names of the resolvers in that priority level.
445+ * @return For each weight level, the names of the resolvers in that weight level.
446446 */
447- public static TreeMap <Integer , List <String >> groupResolversByPriority (Model model , List <String > resolvers ) {
447+ public static TreeMap <Integer , List <String >> groupResolversByWeight (Model model , List <String > resolvers ) {
448448 TreeMap <Integer , List <String >> resolverGroups = new TreeMap <>();
449449 for (String resolverName : resolvers ) {
450- Integer priority = model .resolvers ().get (resolverName ).priority ();
451- if (!resolverGroups .containsKey (priority ))
452- resolverGroups .put (priority , new ArrayList <>());
453- resolverGroups .get (priority ).add (resolverName );
450+ Integer weight = model .resolvers ().get (resolverName ).weight ();
451+ if (!resolverGroups .containsKey (weight ))
452+ resolverGroups .put (weight , new ArrayList <>());
453+ resolverGroups .get (weight ).add (resolverName );
454454 }
455455 return resolverGroups ;
456456 }
@@ -650,31 +650,32 @@ else if (size == 1)
650650 TreeMap <Integer , TreeMap <String , TreeMap >> resolversFilterTreeGrouped = new TreeMap <>(Collections .reverseOrder ());
651651 if (!this .attributes .isEmpty ()) {
652652
653- // Group the resolvers by their priority level.
654- TreeMap <Integer , List <String >> resolverGroups = groupResolversByPriority (this .input .model (), resolvers );
653+ // Group the resolvers by their weight level.
654+ TreeMap <Integer , List <String >> resolverGroups = groupResolversByWeight (this .input .model (), resolvers );
655655
656- // Construct a clause for each priority level in ascending order of priority.
657- List <Integer > priorities = new ArrayList <>(resolverGroups .keySet ());
658- int numPriorityLevels = priorities .size ();
659- for (int level = 0 ; level < numPriorityLevels ; level ++) {
660- Integer priority = priorities .get (level );
661- List <String > resolversGroup = resolverGroups .get (priority );
656+ // Construct a clause for each weight level in descending order of weight.
657+ List <Integer > weights = new ArrayList <>(resolverGroups .keySet ());
658+ Collections .reverse (weights );
659+ int numWeightLevels = weights .size ();
660+ for (int level = 0 ; level < numWeightLevels ; level ++) {
661+ Integer weight = weights .get (level );
662+ List <String > resolversGroup = resolverGroups .get (weight );
662663 Map <String , Integer > counts = countAttributesAcrossResolvers (this .input .model (), resolversGroup );
663664 List <List <String >> resolversSorted = sortResolverAttributes (this .input .model (), resolversGroup , counts );
664665 resolversFilterTree = makeResolversFilterTree (resolversSorted );
665- resolversFilterTreeGrouped .put (numPriorityLevels - level - 1 , resolversFilterTree );
666+ resolversFilterTreeGrouped .put (numWeightLevels - level - 1 , resolversFilterTree );
666667 resolversClause = populateResolversFilterTree (this .input .model (), indexName , resolversFilterTree , this .attributes , this .includeExplanation , _nameIdCounter );
667668
668- // If there are multiple levels of priority , then each higher priority group of resolvers must ensure
669- // that every lower priority resolver either matches or does not exist.
669+ // If there are multiple levels of weight , then each lower weight group of resolvers must ensure
670+ // that every higher weight resolver either matches or does not exist.
670671 List <String > parentResolversClauses = new ArrayList <>();
671672 if (level > 0 ) {
672673
673- // This is a higher priority group of resolvers.
674- // Every lower priority resolver either must match or must not exist.
674+ // This is a lower weight group of resolvers.
675+ // Every higher weight resolver either must match or must not exist.
675676 for (int parentLevel = 0 ; parentLevel < level ; parentLevel ++) {
676- Integer parentPriority = priorities .get (parentLevel );
677- List <String > parentResolversGroup = resolverGroups .get (parentPriority );
677+ Integer parentWeight = weights .get (parentLevel );
678+ List <String > parentResolversGroup = resolverGroups .get (parentWeight );
678679 List <String > parentResolverClauses = new ArrayList <>();
679680 for (String parentResolverName : parentResolversGroup ) {
680681
@@ -695,7 +696,7 @@ else if (size == 1)
695696 parentResolverClauses .add ("{\" bool\" :{\" should\" :[" + attributesExistsClause + "," + parentResolverClause + "]}}" );
696697 }
697698
698- // Construct a "filter" clause for every lower priority resolver clause.
699+ // Construct a "filter" clause for every higher weight resolver clause.
699700 parentResolversClauses .add ("{\" bool\" :{\" filter\" :[" + String .join ("," , parentResolverClauses ) + "]}}" );
700701 }
701702 }
0 commit comments