Helix Core is now P4. Product user interfaces will be updated soon. Learn more >>

P4 Search Documentation | 2026.1

# Install P4 Search

After you have installed Elasticsearch, you can install P4 Search. Part of the installation of P4 Search requires setting up an initial configuration.

P4 Search is a self-contained Java application designed and tested against AdoptOpenJDK Java 17. The Windows installers and Linux packages deploy their own Java runtime environment (OpenJDK 17) and wrap it as a service.

To see what your installation directory should look like after P4 Search has been installed, see Installation layout.

## Before you begin

- Ensure that you are using a supported platform:

  - Linux: Ubuntu 20.04, 22.04, 24.04, or RHEL 8, 9
  - Windows: Windows Server 2019, or Windows Server 2022

- You must have a P4 Server server running (P4 Server 2024.1 or later).

- You must have installed Elasticsearch (Elasticsearch 8.12.1 to 8.19.13 are supported) and have a server running.

- Ensure that you meet the system requirements for your deployment. See System requirements.

- Ensure that you have a list of host addresses for the nodes used by Elasticsearch.

- (Optional:) If you need to secure your P4 Search communications, you must create a Java keystore. To learn more, see Secure P4 Search communications.

## Install P4 Search on Linux

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

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

   Follow the instructions for your OS distribution:

   Ubuntu

   sudo apt-get install helix-p4search

   RHEL (run these commands as root):

   yum install helix-p4search

   P4 Search uses Tesseract and ImageMagick for its installation, which requires an EPEL repository on your system.

   To add an EPEL repository to your system, run the following commands:

       dnf install -y epel-release
       /usr/bin/crb enable

   To learn more about Tesseract and ImageMagick, see Install Tesseract and ImageMagick (OCR).

   The firewall configuration might need to be adjusted to allow access to the web server. For the default port 1601, run (as root):

       firewall-cmd --zone=public --add-port=1601/tcp --permanent
       sudo systemctl reload firewalld

   If you subsequently wish to enable HTTPS, run (as root):

       sudo firewall-cmd --permanent --add-service=https
       sudo systemctl reload firewalld

3. Configure P4 Search. See Configure P4 Search for the first time.

4. Restart the P4 Search service by running the following command as root:

   sudo systemctl restart p4search.service

5. Check that everything is working as expected from the Service Status page. See Check the status of P4 Search. You might need to log in to view the page.

Advanced users: You can allocate more memory to P4 Search by setting -Xms and -Xmx in the vmoptions file:

/opt/perforce/helix-p4search/sbin/p4search.vmoptions

By default, there are no settings for these.

## Install P4 Search on Windows

To learn how to install P4 Search on Windows, watch the following video or review the instructions that come after it.

1. Download the P4 Search installer from the P4 Search download page on the Perforce website.
2. Double click the installer to start it. When prompted, confirm that you want the installer to make changes to your computer.
3. To start the installation process, click Next.
4. Accept the license agreement to continue with the upgrade and click Next.
5. Choose a destination folder for the installation and click Next.

   P4 Search is installed at the chosen location.

6. Configure the P4 Search service and click Next.

By default, the P4 Search service is public to machines on the same network.

You can configure the P4 Search web service to use HTTPS. See Secure P4 Search communications.
7. Configure the P4 Server and click Next.
8. Configure the Elasticsearch connection and click Next.
9. Configure image detection and click Next.
10. Configure speech recognition and click Next.
11. To complete the installation, click Finish.
12. To fully configure P4 Search:
    1. Check where each configurable is set from the Configure from column of the tables, see P4 Search configuration reference.
    2. Configure the configurables, see Update the P4 Search configuration.

Advanced users: You can allocate more memory to P4 Search by setting -Xms and -Xmx in the vmoptions file:

C:\Program Files\Perforce\helix-p4search\sbin\p4search.vmoptions

By default, there are no settings for these.

## Installation 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\...

The standard layout is as follows:

      - etc/
        - configure.sh                               (script file to configure P4 Search)
        - default.config.properties                  (connection details for P4 Server and  the Perforce index name)
        - service.properties                         (configuration information for the P4 Search 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)
        - policy.json                                (stores the configuration settings, including default
                                                      values, for a specific policy or set of rules)
        - truststore.jks                             (location of P4 Search's local trust store)
      - jre/                                         (Java Runtime)
      - lib/
        - f3d/                                       (F3D application binaries. Used to create 2D preview images
                                                      if Blender is not present)
        - helix-core-search-ping.p4-extension        (checks if the external URL of your P4 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                           (P4 Search service)
        - p4search-filter-8.12.1-xxxx.zip            (Elasticsearch filter plugin for Elasticsearch 8.12.1)
        ...
        - p4search-filter-8.19.13-xxxx.zip            (Elasticsearch filter plugin for Elasticsearch 8.19.13)
      - log/
        - error.log                                  (service wrapper error log)
        - p4search.log                               (P4 Search service log)
      - sbin/
        - p4search                                   (service wrapper)
        - p4search.vmoptions                         (wrapper JVM options)
      - tmp/                                         (temporary file directory)
      - jnl/                                         (keeps track of index requests)
        - RenderQueue.jnl                            (render queue)
        - BackgroundIndexQueue.jnl                   (background index queue)
        - IndexQueue.jnl                             (index queue)
        - *.tmp                                      (temporary files in the process of recovery)
        - *.ckp                                      (checkpoint files)

## Next steps

- Install P4 Render.

## Related topics

- Configure P4 Search for the first time.

- Install P4 Search using Docker

Your search for returned results