Add a Virtual Search Server

User Role: System Administrator, KMAdmin

The Knowledge Management search server form displays settings used for configuring the Knowledge Management search servers (or search engines) to provide connectivity to Service Manager for knowledgebase searching. The search engines can be installed on separate machines to enhance performance.

A virtual search server must contain one master server and may also contain several slave servers or a load balancer server. In most cases, a single virtual server should be sufficient for most organizations. However, your particular organization may choose to encapsulate your knowledgebases into multiple virtual servers for performance reasons or to prevent all knowledgebases from going down at the same time. See Overview of the Solr Search Engine for the diagram of an example virtual server configuration.

To add a virtual search server, add a master first and then add slave or load balancer servers to it as needed. The following describes the three types of search servers:

  • Master: Indexing will always happen on this server. You can only have one master server per virtual search engine. This is the minimum server definition needed for a working virtual search engine configuration.
  • Slave: Slave servers are optional. When defined and the Primary Searcher field is set to true, all search requests for knowledgebases assigned to this virtual search engine will be directed to this server.
  • Load Balancer: Load balancers are optional. When defined and the Primary Searcher field is set to true, all search requests will be directed to this server. You also need to install a load balancer (an Apache web server) for load balancing of the virtual search server.

    Note For load balancing of the Solr search engine, only Apache has been tested and is currently supported by Micro Focus.

Primary Searcher

If a virtual server contains one master and only one slave, the slave must be the primary searcher. If a virtual server contains one master and more than one slave, a load balancer is needed, and the load balancer must be the primary searcher.

Search requests are always initially directed to this server. If the primary searcher is a load balancer, it will redirect the requests to the other servers in the virtual server group.

To add a new virtual search server:

  1. From the navigator menu, select Knowledge Management > Configuration > Configure Search Servers.
  2. In the Server Name field, enter the server name that specifies the name for the virtual search server - Knowledge Management search server. Choose a unique name to describe the search server, as in "Production" or "Development."

    Caution You cannot change server names once the record is added.
  3. Click Add. The fields for the virtual search server will be displayed.

    Note All fields are required for adding or editing search server records.
  4. Add a master to the new search server.
    1. Complete  the following fields:
      • Hostname Enter the server name (or IP address) of the machine where the master server is installed.

        Caution Do not specify localhost as the Hostname of a search server, no matter whether it is a master, slave or load balancer.
      • Port: The search engine requires an open port for communication. For most Tomcat web servers, the default port is 8080. The web server listens to this port number for the search engine.

        Note Ensure that the port you select is not blocked or otherwise restricted by a firewall.
      • Server Type: Select Master.
    2. Click Add. The master search server is added to the virtual search server.

    3. Select the master server from the table and then click the Verify Server button to send a test ping to that server. For more information, see Verify Knowledgebase Search Server Connectivity.

      Optionally, you can continue to add slave or load balancer servers to the search server.

  5. Optionally, add a slave search server.

    1. In the Server Name and Port fields, enter the server name (or IP address) and port of the slave server host.

      Note Do not designate any search server as localhost.
    2. Select Slave for Server Type.
    3. Click Add. The slave server is added to the table.
    4. Verify the slave server connectivity. See Verify Knowledgebase Search Server Connectivity.

      The following figure shows an example master and slave configuration.

  6. Optionally, add a load balancer search server and configure load balancing:

    1. Make sure you have already added one master and at least two slave search servers, as described above.

      Note You must install a load balancer (for example, an Apache web server) of your own choice, as no load balancer is provided with Knowledge Management. You must choose a unique port for your load balancer; do not use a port defined for a master server or slave server. A minimum of two slave servers is recommended for load balancing. Do not load balance a single slave server with the master server. If the master server is re-indexing, the load balancer may send a search request to the master server and the search will fail.

      The following example describes how you can configure load balancing for a virtual search server, using an Apache web server as a load balancer. This example assumes the following virtual search server configuration is used.

    2. Set one of the salves as the Primary Searcher. For details, see Specify a Primary Searcher.

    3. Perform a full re-indexing of an existing knowledgebase. For details, see Perform a Full Reindex on a Knowledgebase.
    4. Click Search Knowledgebase, select the indexed knowledgebase, and verify the search functionality is working fine.
    5. Install an Apache 2.x server on a machine that you want to use as the load balancer server.
    6. Modify the httpd.conf file in the conf directory to enable the proxy server.
      1. Uncomment the following loadModule lines.

        LoadModule proxy_http_module modules/mod_proxy_http.so
        LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
        LoadModule proxy_module modules/mod_proxy.so
      2. Add the following proxy server configuration to the end of the file.

        #example
        ProxyRequests Off
        ProxyPass /KMCores balancer://mycluster/
        ProxyPassReverse /KMCores balancer://mycluster/
        <Proxy balancer://mycluster>
        BalancerMember http://mli3:8083/KMCores
        BalancerMember http://mli4:8084/KMCores
        </Proxy>

        Where: mycluster is a descriptive name for the search server cluster, while mli3:8083 and mli4:8084 are the host names and ports of the slaves.

    7. Start the Apache server.
    8. Verify that the proxy server works fine for load balancing (http://mli5:8080/KMCores).
    9. Add the load balancer server to the virtual search server.
      1. In the Server Name and Port fields, enter the server name (or IP address) and port of the Apache server.
      2. Select Load Balancer for Server Type, and click Add. The load balancer server is added.
    10. Set the load balancer server as the Primary Searcher. For details, see Specify a Primary Searcher.

      The load balancing configuration is complete.

To delete an existing server from a virtual search server (that is, a search server cluster):

  1. Select the server from the table.
  2. Click the Delete Server button.

    Caution You should not delete a Primary Search server. You need to select another server to handle search requests. Once the Primary Searcher server setting is changed to another server, you can delete the server.

To delete an existing virtual search server:

Delete a virtual search server only if there are no knowledgebases assigned to it. If no knowledgebases point to the server, you can delete the server.

  1. On the Knowledge Management > Configuration > Knowlegebases screen, change the Search Server Name to an alternate server.
  2. Click Knowledge Management > Configuration > Configure Search Servers.
  3. Click Search.
  4. Select the virtual search server you want to delete.
  5. Click Delete.

Related topics

Overview of the Solr Search Engine

Verify Knowledgebase Search Server Connectivity
Specify a Primary Searcher