+

Search Tips   |   Advanced Search

Configure post-filtering for community libraries

We can use SearchCellConfig commands to configure post-filtering for community libraries. Post-filtering is enabled by default.

To access configuration files, use wsadmin.sh.

Pre-filtering is a process that happens before a search query is issued. It involves collecting all the access control lists (ACLs) for user content that is not public. These ACLs are added to the search query and are used for searching private content in addition to public content. For community library files that are part of a private community, the ACL of the private community is added to the member's search query.

Post-filtering takes place when the search results are returned from the index after a search query is run. After the search results are returned, the Search application must verify with the filtering service the user who performed the search has the appropriate level of access to see returned documents. If the user is not allowed to see a file, that file is excluded from the search results and other documents are returned to take the place of the excluded file. Post-filtering is only relevant to community libraries.

Post-filtering is not required under the following circumstances:

Postfiltering must be enabled if we are using FileNet features to restrict access to a greater degree than the restrictions made in the Connections user interface.

To configure post-filtering for community libraries.

  1. Start wsadmin...

  2. Initialize the Search environment, and start the Search script interpreter:

      execfile("searchAdmin.py")

    If successful

      Search Administration initialized

  3. Check out search-config.xml :

    SearchCellConfig.checkOutConfig("working_dir", "cellName")

    where:

    • working_dir is the temporary directory to check out the cell level configuration file. This directory must exist. Use forward slashes to separate directories, even with Windows.

      AIX , and Linux only: The directory must grant write permissions or the command will not run successfully.

    • cellName is the name of the cell the Search node belongs to. Required. Case-sensitive. To determine:

      print AdminControl.getCell()

    For example:

      SearchCellConfig.checkOutConfig("c:/search_temp", "SearchServerNode01Cell")

  4. Runs as needed:

    SearchCellConfig.enableEcmPostFiltering()

    Enable post-filtering for community libraries. Post-filtering is enabled by default. This command does not take any parameters.

    SearchCellConfig.disableEcmPostFiltering()

    Disable post-filtering for community libraries. Post-filtering is enabled by default. This command does not take any parameters.

    SearchCellConfig.setEcmPostFilteringMultiplier(multiplier)

    Multiplier for post filtering.

    When a user requests a certain page size for their search results, the Search application attempts to populate the page with the specified number of results.  For example, if the user requests a page size of 10, the Search application checks more than 10 documents. However, a limit is required to avoid performance issues. A multiplier of 3 specifies that up to 30 documents are loaded to identify 10 documents to which the user has access. In most cases, statistically, this should be enough to fill the page. If the page cannot be fully populated after checking all 30 documents, a page with fewer search results is returned to the user.

    If we frequently receive partially filled search result pages in Connections, You should change this parameter.

    Parameter:

    • Multiplier. A positive integer that specifies how many documents checked in the attempt to populate the search results page.

    For example:

      SearchCellConfig.setEcmPostFilteringMultiplier(20)

    SearchCellConfig.setEcmPostFilteringMaxGapSize(maxGapSize)

    Maximum gap size allowed for post-filtering.

    If a user uses the pagination controls in the Search user interface, post-filtering calculation is performed when jumping from page 1 of the search results to, for example, page 4. However, you may not want to allow post-filtering calculation when jumping to page 100 for performance reasons. This command specifies the maximum gap allowed for post-filtering calculations between the current page and the requested page.

    Parameter:

    • maxGapSize. A positive integer that specifies the maximum gap allowed between the current page (for which the accurate index is known) and the requested page for post-filtering calculations.

    For example:

      SearchCellConfig.setEcmPostFilteringMaxGapSize(250)

    SearchCellConfig.setEcmPostFilteringConnectionTimeOut(connectionTimeOutInMillis)

    Connection timeout value for post-filtering.

    If the timeout occurs, community library documents are removed from the search results. Results for community documents that have no access control are still shown.

    Parameter:

    • connectionTimeOutInMillis. A positive integer that specifies the connection timeout for post-filtering in milliseconds.

    For example:

      SearchCellConfig.setEcmPostFilteringConnectionTimeOut(1000)

    SearchCellConfig.setEcmPostFilteringSocketDataTimeOut(socketDataTimeOutInMillis)

    Set the socket data timeout value for post-filtering.

    If the timeout occurs, community library documents are removed from the search results. Results for community documents that have no access control are still shown.

    Parameter:

    • socketDataTimeOutInMillis. A positive integer that specifies the socket data timeout for post-filtering in milliseconds.

    For example:

      SearchCellConfig.setEcmPostFilteringSocketDataTimeOut(3000)

    SearchCellConfig.setEcmPostFiltering(multiplier,maxGapSize,connectionTimeOutInMillis,socketDataTimeOutInMillis)

    Enable post-filtering settings for community libraries with the values specified.

    Parameters:

    • Multiplier. A positive integer that specifies how many documents checked in the attempt to populate the search results page.

    • maxGapSize. A positive integer that specifies the maximum gap allowed between the current page (for which the accurate index is known) and the requested page for post-filtering calculations.

    • connectionTimeOutInMillis. A positive integer that specifies the connection timeout for post-filtering in milliseconds.

    • socketDataTimeOutInMillis. A positive integer that specifies the socket data timeout for post-filtering in milliseconds.

    For example:

      SearchCellConfig.setEcmPostFiltering(20,100,250,1000)

  5. Check in search-config.xml:

    SearchCellConfig.checkInConfig()

  6. To exit the wsadmin client, type exit at the prompt.

  7. Stop the affected servers and then start them again to put the configuration changes into effect. If the change you made affects a node, we must stop and restart all of the servers on that node. Similarly, if the change you made affects a cell, we must stop and restart all of the servers in that cell.

    For a high-availability deployment, stop and start the servers in turn to ensure the Search application is still available to the users.


Parent topic:
Manage the Search application