Install Helix Search

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

Process overview

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.

Install Helix Search on Linux

To install Helix Search for Linux:

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

  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.

    • For instructions on configuring Helix Search using configure.sh script, see Configure using a script.

    • For instructions on configuring services used by Helix Search, see Helix Search configuration.

    • For a full list of all the properties for the services used by Helix Search, see Configure Helix Search.

    • Tip

      When the Helix Search service has been configured and is running, you can configure any of the services from the Helix Search web page if you prefer. See Configure Helix Search.

  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.

Install Helix Search on Windows

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

  1. Review the process overview, see Process overview.
  2. Check that you have met the prerequisites before starting the installation, see Prerequisites .
  3. Download the Helix Search installer from the Helix Search download page on the Perforce website.
  4. Double click on the installer to start it and confirm that you want the installer to make changes to your computer when prompted.
  5. To start the installation click Next >:
  6. Select the folder you want install to and click Next >:
  7. Configure the Helix Search service and click Next >.
  8. 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 Configure SSL security for Helix Search.

  9. Configure the Helix Server and click Next >:
  10. Configure the Elasticsearch connection and click Next >:
  11. Configure image detection and click Next>:
  12. To complete the installation click Finish.
  13. 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.

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-ping.p4-extension        (checks if the external URL of your Helix Search instance is reachable)
    - 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.15.x-xxxx.zip            (Elasticsearch filter plugin for Elasticsearch 7.15.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.13.x-xxxx.zip            (Elasticsearch filter plugin for Elasticsearch 8.13.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

Create users and tickets for external services

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

For Linux installations, after the package install you can run the etc/configure.sh script file to configure users, groups, and the required permissions for Helix Core Server. The etc/configure.sh script file is located in the installation directory. For more details, see Configure using a script.

Create 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

Create the index user (optional)

The index user must have super 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

Create 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

Post installation

Related topics