Overview
Attivio Features are used to configure large numbers of components that work together across multiple nodesets in the topology.
For instance, a single node/single partition 'index' in Attivio includes an AttivioEngine, a ContentDispatcher and a QueryDispatcher. If you have a multi-partition index or want to replicate the index to another machine, the number of components can increase dramatically. The Index Feature brings all of these lower level components together into a simple higher level 'index' concept. While it is possible to configure all the individual components by hand, the Index Feature makes it much simpler to design, configure and modify a topology.
View incoming links.
User Features in Attivio
These are links to documentation pages about specific user features of Attivio.
- Autowarm Search Caches
- Configure the Index
- Configure the FacetFinder
- Configure Ingestion
- Configure Query Receivers on Nodes
- Configure Query Logging Services
- Configure Service Startup Order
- Configure System Logging
Feature Basics
Features can be used to validate the system configuration (validating features) or to modify the configuration (modifying features). It is also possible for features to be of both types.
Validating Features
The ConfigurationValidator class is designed to check the configuration at various points in the Attivio start up life cycle to validate that the system is setup correctly. For instance, the CheckTopology feature ensures that the node name specified at system start up matches the host/port that topology declares. If you specified a node name 'foo' but the current machine's host name was 'bar' this feature would throw an exception at start up time and indicate what needs to be addressed.
Modifying Features
The ConfigurationModifier class is designed to modify the current configuration. For example, the index feature described above inserts all the necessary services and workflow components necessary to support it's model of an index. Modifying features can add, remove, or change any part of the system configuration.
Configuring Features
Most features in Attivio use a custom XML namespace in order to define a custom xml syntax for configuration. In most of Attivio's default and sample config files this namespace has a prefix of f:
and most modern XML editors will auto-complete elements and attributes inside this namespace. Any time one of these features is used the namespace must be declared at the top of the configuration file as follows:
Dependencies
By default all Attivio features support the notion of dependencies on other features. For a feature to be dependent on another feature means that it requires the other feature to be present in the system and for the dependent feature to execute first. Features also support optional dependencies. If a feature is optionally dependent on another feature, it requires the dependent feature to execute first if the dependent feature is registered with the system. If the feature is not present in the system, the requirement is ignored. The feature framework will handle the actual ordering of features and detect any errors such as circular dependencies.
Feature dependencies can be used to order configuration modifications. For instance, one feature may register a new component and another feature may come along after it and add that component to a workflow. All instances of the com.attivio.app.config.feature.AbstractFeature support configurable dependencies. All core features support the following syntax for configuring dependencies:
<f:someFeature depends-on="depFeature1,depFeature2" optionally-depends-on="feature4,feature5" />
Disabling a Feature
We generally recommend you edit the <project_dir>\conf\features\<feature-name>.xml file (created with the createProject utility) to reflect the feature set you want to use. If you do not wish to use a particular feature, simply don't use it (or comment it out) in this file.