Routing involves mapping languages or sites (or both) to specific EAC applications, based on criteria that you specify. For example, if you have a site that is in French and English, you may want to direct the French records to one EAC application for indexing, and direct the English records to a different EAC application. After indexing, when a user enters a search term or selects a dimension, the same routing logic directs the query to the correct EAC application (for example, French queries to the EAC application that indexes the French records).
Different routing options are supported by different classes that implement the atg.endeca.configuration.ApplicationRoutingStrategy
interface. The class you use determines the logic for directing records to EAC applications for indexing and for directing queries to those applications.
In addition to ApplicationRoutingStrategy
, there is another key routing interface, atg.endeca.configuration.RoutingObjectAdapter
. Classes that implement this interface are responsible for determining the current site or language so the ApplicationRoutingStrategy
class can then direct data to the correct application. There are two subinterfaces of RoutingObjectAdapter
:
atg.endeca.index.configuration.ContextRoutingObjectAdapter
– Classes that implement this interface are used during indexing to obtain the current indexing context from theatg.repository.search.indexing.Context
object.atg.endeca.assembler.configuration.RequestRoutingObjectAdapter
– Classes that implement this interface are used during querying to obtain the current querying context from theDynamoHttpServletRequest
object and other objects that hold request-specific state, such asSiteContext
objects.
The ApplicationRoutingStrategy
and RoutingObjectAdapter
classes are discussed below. To specify the routing classes you want to use, see Configuring Routing.