Directory collections
Introduction
A directory collection gathers data from a directory service such as Active Directory or LDAP using Java's JNDI system. Funnelback uses a query (generally an LDAP style query) to select the desired directory entries, and each entry is saved as an XML file.
Configuring a directory collection
Create the collection
Directory collections are created by selecting create collection and selecting directory from the administration interface.
The directory collection is defined by configuring the following properties:
- URL to the directory
- search base from which to begin the directory search
- search filter to select directory entries with
- exclude rules to exclude selected directory entries
- domain, user name and password for the directory
Note that some directory servers are configured to limit the number of results which can be returned for a query. Since Funnelback must be allowed to gather a complete set of directory entries it may be necessary to configure your directory server to permit this. See OpenLDAP : Limits for documentation on configuring the OpenLDAP directory server to support this.
Test the connection settings by clicking the check directory connectivity button.
After creating the collection, perform an initial update of the collection.
Define LDAP field mappings
After a successul update has run configure metadata mappings for the LDAP fields. The update of the directory collection downloads each entry from LDAP and converts it to an XML record.
The fields that were detected in the LDAP records should be listed amongst the XML sources. Map the relevant fields to metadata classes. Relevant fields include:
- fields that you wish to display in the search results summaries, or use for faceted navigation.
- fields that contribute something useful to the record's searchability. e.g. topics of interest, office locations, keywords.
- If there is a field containing a URL that should be used as the target when the result is clicked on then this should be mapped as the document's URL using the advanced XML configuration options available from the administer tab in the administration interface.
Rebuild the index by selecting reindex the live view from the advanced update option on the update tab in the administration interface.
After the reindex is complete metadata should be available for display in the search results.
Configure search results
Search results can then be configured. This involves:
- Defining the metadata classes to return in the search results by setting the summary fields (
-SF
) query processor options. - If using a Freemarker search template, customising the template to display the metadata fields in the search results template within the
<@s.Results>
code block.
Live links
By default the URL used in directory collections is a system-generated URL. If the system-generated URL is not modified (for example by filters) the modern UI will use the cache link as the live URL. This will result in the XML of the record being shown to the user when a result is clicked. You can use XSLT on the cache controller to style the response.
Modifying directory records
Directory records can be modified (locally) prior to indexing using the filter framework.
Configuration options
The following options are available for directory collections. These options can be set in the collection.cfg
.
Option | Description |
---|---|
directory.context_factory | Sets the java class to use for creating directory connections. |
directory.domain | Sets the domain to use for authentication in a directory collection. |
directory.exclude_rules | Sets the rules for excluding content from a directory collection. |
directory.page_size | Sets the number of documents to fetch from the directory in each request. |
directory.password | Sets the password to use for authentication in a directory collection. |
directory.provider_url | Sets the URL for accessing the directory in a directory collection. |
directory.search_base | Sets the base from which content will be gathered in a directory collection. |
directory.search_filter | Sets the filter for selecting content to gather in a directory collection. |
directory.username | Sets the username to use for authentication in a directory collection. |
filter.classes | Specifies which java classes should be used for filtering documents. |