Setting Up Lotus Notes Sources

Lotus Notes data is stored in notes-databases, which can be further contained inside directories on a server. A Lotus Domino Server instance can have one or more databases that can be crawled using the Lotus Notes source. The Lotus Notes source navigates through the databases to crawl the documents (for example, e-mail, calendar, address book, and "to do") in the specified databases. It stores the metadata, and accesses information in Oracle SES to provide search according to the end users' credentials.

The Lotus Notes connector now lets you enable or disable multiple attachment support with the Attachment as Search Item attribute. When this is disabled, the additional attributes Parent URL and Parent Title are added for all attachment documents, to link it with the parent document.

The Lotus Notes source supports incremental crawling; that is, it crawls and indexes only those documents that have changed after recent most crawling was scheduled. A document is re-crawled if either the content, metadata, display URL or the direct security access information of the document has changed. Documents deleted from a database are removed from the index during incremental crawling.

To enable Oracle SES to launch Notes thick client, set the Notes Thick Client parameter to true.

Important Notes for Lotus Notes Sources

The user-account used to crawl Lotus Notes databases should preferably be an Administrator account, such that it has access on all databases and can retrieve and crawl all documents in the specified databases.

Required Software

  • Lotus Domino Server R5.0.9/R6.5.4/R7.0

  • Notes Clients R5.0.9/R6.5.4/R7.0

Required Tasks

The following tasks must be performed before installing the Lotus Notes source:

  1. HTTP and DIIOP tasks must be running on Domino Server.

  2. If the Active Directory identity plug-in is used, then the users and user-groups in the Domino Directory must be synchronized with Active Directory. While using the Active Directory identity plug-in, the short-name in the Lotus Notes person document is used for validating the user in Active Directory, so it should be a resolvable logon name in Active Directory.

  3. Configure the server document:

    1. Open the server document on the Lotus Notes server that must be crawled.

    2. On the Configuration page, expand the Server section.

    3. On the Security page, in the Programmability Restrictions area, specify the appropriate security restrictions for your environment in the following fields:

      Run restricted Lotus Script/Java agents

      Run restricted Java/Javascript/COM

      Run unrestricted Java/Javascript/COM

      For example, you might specify an asterisk (*) to allow unrestricted access by Lotus Script/Java agents, and specify user names that are registered in the Domino Directory for the Java/Javascript/COM restrictions.


      The crawler that you configure to crawl this server with the DIIOP protocol must be able to use the user names that you specify in these fields.
    4. Open the Internet Protocol page, then open the HTTP page, and set the Allow HTTP Clients to Browse Database option to Yes.

    5. Configure the user document:

      Open the user document on the Lotus Notes server. This document is stored in the Domino directory.

      On the Basics page, for Internet password, specify a password.

    6. Restart the DIIOP task on the server.

  4. Copy the Lotus Notes/Domino jar files to the following directories. This must be done before activating the Lotus Notes identity plug-in.

    For Lotus Notes release 5.0:

    Notes.jar NCSO.jar 
    Notes.jar NCSOW.jar

    For Lotus Notes release 6.5 and 7.0:

    NCSO.jar Notes.jar 
    NCSO.jar Notes.jar

Known Issues

  • A Lotus Notes source does not index encrypted fields, and the content of attachments with encrypted documents, for searching. With encrypted documents, the URL of the search result launches the Notes document instead of the attachment file, which is the case when non-encrypted documents are crawled.

  • Deleted Notes documents and attachments in Notes documents are still searchable after an incremental crawl that was set by specifying 'Recrawl using last modified date' as true. To remove URLs from deleted documents or attachments from the Oracle SES index, either perform a force re-crawl (that is, change the re-crawl policy to Process All Documents on the Home - Schedules - Edit Schedule page) or mark the 'Recrawl using last modified date' source parameter as false.

Setting Up Identity Management for Lotus Notes

Activate an identity plug-in on the Global Settings - Identity Management Setup page.

The users/groups on Active Directory can be synchronized with Lotus Domino Directory such that all users/groups in Active Directory get registered in Domino as well. Thus, any ACL entry in a notes database or notes document can be validated in Active Directory also, and vice versa.

Oracle SES also provides a Lotus Notes identity plug-in so the Lotus Domino Directory can be used to authenticate and validate the notes native users and groups in Oracle SES.

Activate the Lotus Notes identity plug-in with the following parameters:

  • Server name: The Domino server fully qualified host name/IP address. If the HTTP port on the Domino server is not 80, then the host name should be server_name:HTTP_port_number.

  • User name: User name of a valid Lotus Domino Server user. Required.

  • Password: Internet password of the Lotus Notes user. Required.

Creating a Lotus Notes Source

Create a Lotus Notes source on the Home - Sources page. Select Lotus Notes from the Source Type list, and click Create. Enter values for the following parameters:

  • Server Name: The Domino server fully qualified host name/IP address. For example, if the Lotus Notes database name is ses.nsf, then enter ses.nsf for this parameter. If the HTTP port on the Domino server is not 80, then the host name should be server_name:HTTP_port_number. Required.

  • Attribute list: The comma-delimited list of Lotus Notes attributes along with their data types to search. The format is AttributeName:AttributeType, AttributeName:AttributeType. The valid values are String, Number, and Date. For example: Subject:String

    Table 8-1 Lotus Notes Data Type Mapping

    Sr. No Lotus Notes Data Type Oracle SES Data Type






    Number (Big Decimal)







    While crawling a database, an attribute is indexed only if both name and type match the configured name and type; otherwise, it is ignored. This is an optional parameter.

    The default searchable attributes for Lotus Domino Server are LASTMODIFIEDDATE, Title, and Author. Multiple attributes with same name are not allowed.

  • User name: The user name of a valid Lotus Domino Server user. The user should be an Administrator user or a user who has access to all folders and documents of the databases configured in the Container name parameter. The user should be able to retrieve content, metadata, and ACL from documents of all databases configured in Container name parameter. Required.

  • Password: Internet password of the Lotus Notes user. Required.

  • Container Name: Names of the containers to be crawled. Multiple container names must be comma-delimited. The container name can include folders, databases, views and folders within databases. For example, database-abc.nsf, folders-folder1, views-abc.nsf:By Author, and db-abc.nsf:folder\subfolder. Note that Lotus Notes database file name must be specified with the extension.

  • Crawl Public Documents: Indicate whether the public documents on notes databases must be crawled such that they are available to anonymous users in Oracle SES, either true or false. Required.

  • Authentication Attribute: The attribute used to validate the ACL. With the Active Directory identity plug-in, set the value to USER_NAME. With the Lotus Notes identity plug-in, set the value to NATIVE. Required.

  • Mail Template Name: This parameter is specific to the mail-databases and the mail template's name should be specified here if any/all of the databases being crawled are mail databases. This is a mandatory parameter if either the Past Days or Future Days parameter is specified.

  • Past Days: If the user is crawling calendar entries, then this parameter specifies the number of days in the past for which the calendar entries are picked. The date of reference here is the start date of the event. This accounts for the number of days in the past, and it does not filter the search by time.

  • Future Days: If the user is crawling calendar entries, then this parameter specifies the number of days in the future for which the calendar entries are picked. The date of reference here is the end date of the event. This accounts for the number of days in the future, and it does not filter the search by time.

  • Notes Title Field: Because in Lotus Notes custom applications it is not mandatory to maintain a Title field, this parameter has been provided to specify those text fields that should be parsed to retrieve the title field. For example, you could enter Subject. With multiple field names, the first field available on the document is selected for the title. Required.

  • Notes Thick Client: Enter true to use Lotus Notes (thick client). Enter false to use Lotus Notes Web access.

  • Recrawl using last modified date: Enter true to enqueue only modified documents. Required.

  • Attachment As Search Item: Enter true to have each document in the attachment be submitted individually as an independent document with the same set of attributes and ACLS as that of the parent document. Enter false to have attachments be added to the parent document and submitted as a single unit.

Displaying the Parent URL in the Search Results

Take the following steps to display the Parent URL attribute in the search results for Lotus Notes connector:

  1. On the Global Settings page, select Use Advanced Configuration. The Global Settings - Configure Search Result List is displayed.

  2. Under Attribute Selection, move ParentURL to the Included list.

  3. Under Style Sheets in the Enter an XSLT box, scroll to <!-- Links link -->...</td> and enter the following XSL code:

          <xsl:if test="parenturl [.!= '']">
             <xsl:text>ParentURL: </xsl:text>
             <a class="browseLink" href="{parenturl}">
                <xsl:value-of select="parenturl" />
  4. Click Apply.