Consolidating documents requires a means of defining the relationships between these documents. To do so, the Consolidation Server uses an object graph, in which each node corresponds to a document.
The node identifier is the document URI. Arcs represent document relationships by linking the nodes with one another.
Note: In this section, document refers to a Exalead CloudView document.
Object Graph and Index Incremental Updates
Using an object graph, a set of document modifications, and aggregation rules, the Consolidation Server determines which documents have been impacted by changes to update the Exalead CloudView index incrementally. By doing so, the Consolidation Server is able to limit the graph traversal and only parse relevant relationships.
The Consolidation Server is able to:
• Enrich a node with "related" data coming from related nodes.
• Aggregate many related nodes' attributes into a single node.
• Correctly handle incremental updates and recompute nodes whose "related" data have been modified (that is to say, added, deleted, updated).
Figure 1. Object Graph as Displayed in the Consolidation > Introspect Tab
Object Graph Node
An object graph node is made of the following string properties:
• A unique identifier – the Exalead CloudView document URI.
• A set of types, ordered from the most specific to the most generic type. For example, Cat > Animal > Living Form. The node type is used to determine which rules are going to be applied (transform, aggregate or forward).
Finally, when pushing a document (node) to the index, you can define the type explicitly. If not, the default data model class associated to the connector will be used.
Inside transformation processors, it is also possible to create nodes explicitly. See Manage Documents Explicitly.
Object Graph Arcs
An object graph arc requires three String properties:
• The source node URI, which is the key of this object
• The destination node URI
• The relationship name of the arc indicating the arc direction
Object graph arcs represent document relationships specified by transformation processors. However, several connectors with specific schemes (ENOVIA, SalesForce, etc.) specify both nodes and arcs using custom directives. Therefore, the Consolidation Server supports custom directives directly sent by source connectors.
Recommendation: To use custom directives, use the new com.exalead.cloudview.consolidationapi.PUSHAPITransformationHelpers.java documented in the javadoc.
Object Graph Matching Expressions
In the aggregation phase, processors can benefit from the object graph arcs to access objects linked to the processed document, using any path connecting the objects together.
The Consolidation Server provides a dedicated grammar to build complex path expressions.
Once a matching rule is used inside an aggregation processor, it can be also used for the impact detection step. It ensures that when updating document A used by document B inside an aggregation processor, document B is processed again to ensure that the change is correctly reflected. For more information, see Impact Detection.