Loading...
 
Skip to main content

History: Federated Search

Source of version: 15 (current)

Copy to clipboard
            ! Federated Search tab
{DIV(float=right,width="200px")}^::Related Topics::
*((Stored Search))
*[http://en.wikipedia.org/wiki/Federated_search]^{DIV}
;__Overview__:This tab is where the Administrator configures federated search
;__To Access__:From the ((Search)) page, click the __Federated Search__ tab.
~tc~ Prefrence documentation generated from https://sourceforge.net/p/tikiwiki/code/HEAD/tree/trunk/lib/prefs/ ~/tc~
~tc~ To update documentation see https://dev.tiki.org/How-to-get-commit-access ~/tc~
{PREFDOC(tab="search-federatedsearch")/}

Introduced with ((Tiki14)), the federated search allows integrating results from other sources into the main search results.

The feature uses ((Elasticsearch))'s ability to query across multiple indices, It can be used for these primary scenarios:

# Sister sites, hosted on the same cluster, such as the *.tiki.org sites
# ManifoldCF, to index external sources such as filesystems, CMIS or other applications
** "[http://manifoldcf.apache.org/en_US/index.html#What+Is+Apache+ManifoldCF%3F|Currently included connectors support FileNet P8 (IBM), Documentum (EMC), LiveLink (OpenText), Meridio (Autonomy), Windows shares (Microsoft), and SharePoint (Microsoft). Also included are a general CMIS connector, a generic file system connector, a general JDBC connector, an RSS feed connector, a Wiki connector, a DropBox connector, an email connector, and a general web connector.]"
# Delegated responsibility environments, where a different group maintains and runs a search cluster

!! Sister sites, where other sites run Tiki

# Make sure all sites index using the Elasticsearch engine on the same cluster of servers
# Enable Federated Search from the Search administration panel
# Configure ((External Wikis)) on each of the sites to indicate which indices to include in the search results.

Permissions will be filtered. By default, Tiki will use the current user's groups, which match by name. The external wiki can also be configured to search using a fixed set of groups, such as only "Anonymous", making sure only public content is accessible.

!! ManifoldCF
# Bind the index through the dependency injection container (UI may be added once the required configurations stabilize)
# Clear caches
# Access the checker from Admin > Search > Federated Search
** Your index will be listed
** Create it from the UI if it does not exist, as ManifoldCF will not create it properly by default
# Configure ManifoldCF's output to ElasticSearch, using the same index and type configured in Tiki.
** Use separate indices for each repository.
# Configure ManifoldCF's repository to your data source
# Configure a job to bind both together and set the update frequency
# Run the job manually to index the content
# Search for content across your custom data source and Tiki simultaneously.

{CODE(caption="Sample configuration: db/config/custom.xml")}
<!-- within a services block -->
        <service class="Search\Federated\ManifoldCfIndex">
            <tag name="tiki.federatedsearch.index" index="manifold"/>
            <argument type="string">generic</argument>
            <argument type="string">http://example.com/</argument>
        </service>
{CODE}

* __manifold__ is the index name
* __generic__ is the type
* __http://example.com/__ is the prefix to apply to the file path in link (note that this is subject to changes in the future)

{HTML()}<script type="text/javascript" src="https://www.openhub.net/p/585779/widgets/project_factoids_stats.js"></script>{HTML}

!! Delegated responsibility
In many organizations, content is spread across multiple locations. Legacy systems are in place. For all those situations, tools will be required to load the content into Elasticsearch. From there, Federated Search will allow to include those indices into the search results.

For cases where the index resides in a different Elasticsearch cluster, tribe nodes can be used to join them together. Tiki allows configuring a tribe node client in addition to a primary server. The tribe node will allow searching in indices located in separate clusters without them sharing resources.

!! Where to use
This has been usable in tiki-searchindex.php since the beginning, and from Tiki 21 can be used in ((PluginList)) and ((PluginCustomSearch)) which is based on PluginList.