Class ACLIDModRouter

  • All Implemented Interfaces:
    DocRouter

    public class ACLIDModRouter
    extends java.lang.Object
    implements DocRouter
    Nodes and access control lists are grouped by their ACL ID. This places the nodes together with all the access control information required to determine the access to a node in the same shard. Both the nodes and access control information are sharded. The overall index size will be smaller than other methods as the ACL index information is not duplicated in every shard. Also, the ACL count is usually much smaller than the node count. This method is beneficial if you have lots of ACLs and the documents are evenly distributed over those ACLs. For example, if you have many Share sites, nodes and ACLs are assigned to shards randomly based on the ACL and the documents to which it applies. The node distribution may be uneven as it depends how many nodes share ACLs. To use this method, when creating a shard add a new configuration property:
    • shard.method=MOD_ACL_ID
    • shard.instance=<shard.instance>
    • shard.count=<shard.count>
    See Also:
    Search Services sharding methods
    • Constructor Summary

      Constructors 
      Constructor Description
      ACLIDModRouter()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.Boolean routeAcl​(int shardCount, int shardInstance, org.alfresco.solr.client.Acl acl)
      Checks if the incoming ACL document must be indexed on this shard.
      java.lang.Boolean routeNode​(int shardCount, int shardInstance, org.alfresco.solr.client.Node node)
      Checks if the incoming Node must be indexed on this shard.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • ACLIDModRouter

        public ACLIDModRouter()
    • Method Detail

      • routeAcl

        public java.lang.Boolean routeAcl​(int shardCount,
                                          int shardInstance,
                                          org.alfresco.solr.client.Acl acl)
        Description copied from interface: DocRouter
        Checks if the incoming ACL document must be indexed on this shard.
        Specified by:
        routeAcl in interface DocRouter
        Parameters:
        shardCount - the total shard count.
        shardInstance - the owning shard instance (i.e. instance number).
        acl - the ACL.
        Returns:
        true if the ACL must be indexed in the shard which owns this DocRouter instance, false otherwise.
      • routeNode

        public java.lang.Boolean routeNode​(int shardCount,
                                           int shardInstance,
                                           org.alfresco.solr.client.Node node)
        Description copied from interface: DocRouter
        Checks if the incoming Node must be indexed on this shard.
        Specified by:
        routeNode in interface DocRouter
        Parameters:
        shardCount - the total shard count.
        shardInstance - the owning shard instance (i.e. instance number).
        node - the Node instance.
        Returns:
        true if the Node instance must be indexed in the shard which owns this DocRouter instance, false otherwise.