Helix Search deployment and installation

This section describes the deployment and installation process for the Helix Core Search API, Helix Core Server, and Elasticsearch. The Helix Search service can be deployed in a variety of ways depending on the customers use-case, see Installation scenarios.

Deployment

Helix Search requires the deployment and install of a number of elements:

Deploy the p4search service

The p4search service is a wrapped JAR that runs as a Windows or Linux service. It uses a Java properties file config.properties to store the services configuration details and connection information for the Helix Server and Elasticsearch instance.

Installer layout

The directory layout after installation depends on the operating system but is typically located under:

  • Linux: /opt/perforce/helix-p4search/...
  • Windows: c:\Program Files\Perforce\helix-p4search\...
  - etc/
    - config.properties                          (configuration information for the p4search service)
    - debug-log4j2.xml                           (sample log configuration file for debug level) 
    - info-log4j2.xml                            (sample log configuration file for debug info) 
    - log4j2.xml                                 (standard log configuration file) 
    - mapping.json                               (standard Elasticsearch field mappings) 
    - settings.json                              (standard Elasticsearch index settings) 
  - jre/                                         (Java RunTime)
  - lib/
    - f3d/                                       (F3D application binaries)
    - helix-core-search-asset.p4-extension       (indexes your assets)
    - helix-core-search-indexer.p4-extension     (indexes your changes)
    - helix-core-search-obliterate.p4-extension  (removes obliterated files from the index)
    - p4search-xxx.jar                           (P4Search service)
    - p4search-filter-7.14.x-xxxx.zip            (Elasticsearch filter plugin for Elasticsearch 7.14.x)
    - p4search-filter-7.15.x-xxxx.zip            (Elasticsearch filter plugin for Elasticsearch 7.15.x)
    - p4search-filter-7.16.x-xxxx.zip            (Elasticsearch filter plugin for Elasticsearch 7.16.x) 
    - p4search-filter-7.17.x-xxxx.zip            (Elasticsearch filter plugin for Elasticsearch 7.17.x)
    - p4search-filter-8.0.x-xxxx.zip             (Elasticsearch filter plugin for Elasticsearch 8.0.x)
    - p4search-filter-8.1.x-xxxx.zip             (Elasticsearch filter plugin for Elasticsearch 8.1.x)
    - p4search-filter-8.2.x-xxxx.zip             (Elasticsearch filter plugin for Elasticsearch 8.2.x)
    - p4search-filter-8.3.x-xxxx.zip             (Elasticsearch filter plugin for Elasticsearch 8.3.x)  
    - p4search-filter-8.4.x-xxxx.zip             (Elasticsearch filter plugin for Elasticsearch 8.4.x)
    - p4search-filter-8.5.x-xxxx.zip             (Elasticsearch filter plugin for Elasticsearch 8.5.x)
    - p4search-filter-8.6.x-xxxx.zip             (Elasticsearch filter plugin for Elasticsearch 8.6.x)
    - p4search-filter-8.7.x-xxxx.zip             (Elasticsearch filter plugin for Elasticsearch 8.7.x)
    - p4search-filter-8.8.x-xxxx.zip             (Elasticsearch filter plugin for Elasticsearch 8.8.x)
    - p4search-filter-8.9.x-xxxx.zip             (Elasticsearch filter plugin for Elasticsearch 8.9.x)
  - log/
    - error.log                                  (service wrapper error log)
    - p4search.log                               (P4Search service log)
  - sbin/
    - p4search                                   (service wrapper)
    - p4search.vmoptions                         (wrapper JVM options)
  - tmp/                                         (temporary file directory)

Tip

Advanced users: allocate more memory to Helix Search by changing the jvm.options file using an editor, defaults are -Xms8g and -Xmx4096m

  • Linux: /opt/perforce/helix-p4search/sbin/p4search.vmoptions
  • Windows: c:\Program Files\Perforce\helix-p4search/sbin/p4search.vmoptions

Install the Helix Plugin Filter

There are two ways to install the Helix Plugin Filter:

For information on Elasticsearch plugin installation and testing, see the elastic.co documentation.

Manual install of the Helix Plugin Filter

To manually install the Helix Plugin Filter also known as Elasticsearch plugin p4search-filter:

  1. Remotely log in to the Elasticsearch host.
  2. Change directory so you are in the Elasticsearch installation directory, typically %ES_HOME%\bin.
  3. To install the plugin, look in the <p4search-installation>/lib directory for the exact filename. For example, p4search-filter-8.9.0-2023.3.2222222.zip.
  4. Where:

    • 8.9.0 is the Elasticsearch version supported
    • 2023.3 is the Helix Search version supported
    • 2222222 is the changelist number of the file

  5. Install the plugin either:
    • from a local file, for example:
    • elasticsearch-plugin install file:///path/to/plugin/p4search-filter-8.9.0-2023.3.2222222.zip

    • or using the Helix Search endpoint, for example:
    • elasticsearch-plugin install http://<p4search host>:<p4search port>/api/v1.2/plugin/p4search-8.9.0-2023.3.2222222.zip

  • Restart Elasticsearch after installing the plugin.
  • Linux package install of the Helix Plugin Filter

    To install the Helix Plugin Filter from a package:

    1. Import the Perforce package signing key and configure the Perforce package repository on the server hosting Helix Plugin Filter. To do this, see Helix package requirements.

    2. Install the HelixPlugin Filter package on the server hosting Elasticsearch.

      Follow the instructions for your OS distribution:

    Creating users required by external services

    You must create the Helix Server users and tickets required by the external services.

    Creating the Perforce Service user

    Important
    • If a Service user is used, the long lived ticket must be a local ticket and not an all hosts ticket.

    • Security level 6 requires the Helix Server to have a valid server spec with the AllowedAddresses field set. For information about Security level 6, see Server security levels in the Helix Core Server Administrator Guide.

    The Perforce Service user can be a Standard or Service user with a minimum of admin permissions to authorize the proxy connection at security level 5 and above.

    The service user name and ticket details are required when you set the following configurables:

    • com.perforce.p4search.core.service.p4user

    • com.perforce.p4search.core.service.p4ticket

    Creating the index user (optional)

    The index user must have admin permissions to read content from Helix Server, to set file attributes, and to install extensions. If the index user is undefined, the Perforce Service user is used.

    The index user name and ticket details are required when you set the following configurables:

    • com.perforce.p4search.core.index.p4user

    • com.perforce.p4search.core.index.p4ticket

    Creating the anonymous search user (optional)

    The anonymous search user is used for unsupported search web pages. The anonymous user needs read permission in the Helix Server for the areas of the depot you want to allow search result access to.

    The anonymous user name and ticket details are required when you set the following configurables:

    • com.perforce.p4search.core.anonymous.p4user

    • com.perforce.p4search.core.anonymous.p4ticket

    Windows Helix Search install

    To install the Helix Search, Helix Server, and Elasticsearch services:

    1. Check that you have met the prerequisites before starting the installation, see Prerequisites.
    2. Download the Helix Search installer from the Helix Search download page on the Perforce website.
    3. Double click on the installer to start it and confirm that you want the installer to make changes to your computer when prompted.
    4. To start the installation click Next >:
    5. Select the folder you want install to and click Next >:
    6. Configure the Helix Search service and click Next >.
    7. By default, the Helix Search service is public to machines on the same network.

      Tip

      You can configure the Helix Search web service to use HTTPS, see SSL security for Helix Search.

    8. Configure the Helix Server and click Next >:
    9. Configure the Elasticsearch connection and click Next >:
    10. Configure image detection and click Next>:
    11. To complete the installation click Finish.
    12. To configure Helix Search do one of the following as an admin user:
      • Open the configuration web page using the connection details you set for the Helix Search service during the installation.
      • Edit the config.properties file in the installation directory.

    Linux Helix Search install

    To install Helix Search for Linux:

    1. Import the Perforce package signing key and configure the Perforce package repository on the server hosting Helix Plugin Filter. To do this, see Helix package requirements.

    2. Install the Helix Search package on the server hosting Helix Search.

      Follow the instructions for your OS distribution:

    3. To configure Helix Search, you can either run the following configuration script:

      cd /opt/perforce/helix-p4search/etc
      ./configure.sh
      

      Or edit the config.properties file located in the installation directory as a root user.

    4. Restart Helix Search service:
    5. Follow the instructions for your OS distribution:

    6. Check that everything is green by navigating to the service status page, you might need to log in to view the page:
    7. http://myhelixsearch.mydomain.com:1601/p4search/settings/status

      The Service status page opens. For more information about the service status page, see Check service status.

      If the Service status page fails to open, see Service status page fails to open.

    Useful topics