Null Object Value Management for SITE attribute
Currently, SearchServices sets a special value (_REPOSITORY_) for the SITE attribute, in those cases where the incoming node doesn't belong to a site.
That enables, at query time, the possibility to ask all nodes that belong to a site (whatever site). In other words, we need that null value for being able to search for all nodes whose site is / is not null.
On Elasticsearch side, we need to populate an attribute which indicates if a given node belongs to a site or not.
In order to do that, the incoming node events contain an attribute called “primaryHierarchy” which could include (or not) the node reference of the node corresponding to the owning site.
In repository all sites are children of a special node whose type is st:sites. The node reference of this special node could be configured in Elasticsearch connector and when a node event arrives we should check the primary hierarchy: if we find it then the node belongs to a site
when a node event arrives and it contains site membership (see above how to get that information) then a boolean attribute "hasSite" set to true will be part of the document that will be indexed
when a node event arrives and it doesn't contain a site membership then a boolean attribute "hasSite" set to false will be part of the document that will be indexed
Implement Unit and Integration Tests