Chapter 5. Merger of SMB and medium-size organizations 411
5.2 Remote and local federators
The SIAPIs support the following types of search tasks:
Customizing the information that is returned in search results sets
Searching and browsing taxonomies
Searching over several collections as though they were one collection (search
Viewing results with URIs that you can click and view scoring information
Searching and retrieving documents from a broad range of enterprise data
sources, such as IBM Content Edition repositories and Lotus Notes
The general steps in creating a search application with the SIAPI are as follows:
1. Instantiate an implementation of a SearchFactory object.
The SearchFactory can then be used to obtain a SearchService object.
2. Use the SearchFactory object to obtain a SearchService object.
The SearchService object is configured with the connection information that
is necessary to communicate with the search engine.
3. Obtain a Searchable object.
After you obtain a SearchService object, you can use it to obtain one or more
Searchable objects. Each SIAPI searchable object is associated with one
enterprise search collection. You can also use the SearchService object to
obtain a federator object. A federator object is a special kind of Searchable
object that enables you to submit a single query across multiple Searchable
objects (collections) at the same time. You need to identify your application by
using an application ID.
4. Issue queries.
The search application passes search queries to the search runtime on the
Attention: The focus of the custom search portlet is search federation.
412 IBM OmniFind EE V8.4: Configuration and Implementation Scenarios
Our custom federation portlet needs to federate over collections stored in two
different servers. We therefore need to use a federator to issue a
federatedsearch request across a set of heterogeneous searchable collections
and get a unified document result set. Search federators are intermediary
components that exist between the requestors of service and the agents that
perform that service. They are coordinate resources to manage the multitude of
searches that are generated from a single request.
IBM OmniFind Enterprise Edition provides two types of SIAPI federators as
A local federator runs in the client, such as a search portlet, and federates
client over a set of searchable objects. A local federator is created by
using the createLocalFederator method from the SIAPI SearchFactory class.
The set of searchable collections on which the query is run is specified when
the federator is created. A subset of searchable objects can also be specified
during search calls. Before you can create a local federator, you must create
or retrieve searchable objects by using a SIAPI SearchFactory. The
searchable object that is passed to the local federator must be ready for
search without any additional information. The local federator uses the
searchable object to issue a federatedsearch request.
A remote federator federates from a server over a set of searchable objects.
A remote federator is run on the server and consumes server resources. It
can only federate results from the server it is running on (there is no proxy-like
functionality). A remote federator is created by using the getFederator method
from the SearchService class. By default, a remote federator will search and
federate across all collections accessible by the application name specified. It
is also possible to restrict a particular search request to a subset of
accessible collections by passing a string array of collection IDs as a second
parameter to the search method.