Install Elasticsearch

After you have set up your P4 Server, you must install Elasticsearch. Elasticsearch is the engine used for indexing, searching, and analyzing data. To learn more, see About Elasticsearch.

You must have Elasticsearch installed to use P4 Search. P4 Search 2026.1 requires Elasticsearch 8.12.1 to 8.19.13.

Before you begin

  • You must have a P4 Server server running.

  • Provision sufficient disk space for your Perforce depot. Text and metadata are stored in Elasticsearch indexes.

  • Ensure you meet the hardware requirements for indexing your data. These depend on both the quantity and the type of data you have. Text, 2D images, and 3D models are all handled differently in the back end. See Index throughput.

P4 DAM and P4 Search might support different versions of Elasticsearch. To learn more about supported services in P4 DAM, see the P4 DAM Administrator Guide.

Install Elasticsearch on Linux

  • The following installation steps are applicable to single-node or small site deployments only. To install multiple nodes, see Install Elasticsearch with Debian Package.

  • Elasticsearch must be installed on a clean computer running the Linux operating system. Ensure that any previous versions of Elasticsearch are removed.

To install Elasticsearch with a Debian package on a single node or in a small site deployment:

  1. Ensure that Elasticsearch is pinned and not upgraded. To pin an Elasticsearch version, follow the instructions for your operating system (OS) distribution:

  2. Import the Elasticsearch Pretty Good Privacy (PGP) key. Follow the instructions in Import the Elasticsearch PGP Key.

  3. From the Advanced package tool (APT) repository, take the following actions:

    1. Install the apt-transport-https package on Debian:

      sudo apt-get install apt-transport-https
    2. Save the repository definition to the /etc/apt/sources.list.d/elastic.list file:

      echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic.list
    3. Install the Elasticsearch Debian package:

      sudo apt-get update && sudo apt-get install elasticsearch

    The Elasticsearch password is displayed in your terminal.

  4. Add the Elasticsearch password to the P4 Search configuration file in the /opt/perforce/helix-p4search/etc/default.config.properties file. The username is elastic.

    P4 Search automatically creates the required indexes.

  5. To configure Elasticsearch to start automatically when the system starts, run the following commands:

    sudo /bin/systemctl daemon-reload 
    sudo /bin/systemctl enable elasticsearch.service

    To start or stop Elasticsearch manually, see Start or stop Elasticsearch.

    By default, the Elasticsearch service doesn’t log information in the systemd journal.

  6. (Optional) To enable journalctl logging, remove the --quiet option from the ExecStart command line in the /usr/lib/systemd/system/elasticsearch.service file.

    To view logging information in the systemd journal, see View logging information in the systemd journal.

  7. Verify that the Elasticsearch node is running by taking one of the following actions:

    • Send an HTTPS request to port 9200 on localhost:

      curl --cacert /etc/elasticsearch/certs/http_ca.crt -u elastic:$<ELASTIC_PASSWORD> https://localhost:9200

      where <ELASTIC_PASSWORD> is the password obtained in the Step 3 of these installation instructions.

      If Elasticsearch is running, it sends a response similar to the following example:

      {
        "name" : "Cp8oag6",
        "cluster_name" : "elasticsearch",
        "cluster_uuid" : "AT69_T_DTp-1qgIJlatQqA",
        "version" : {
          "number" : "8.19.13",
          "build_type" : "tar",
          "build_hash" : "f27399d",
          "build_flavor" : "default",
          "build_date" : "2025-09-01T09:51:41.449Z",
          "build_snapshot" : false,
          "lucene_version" : "10.3.0",
          "minimum_wire_compatibility_version" : "1.2.3",
          "minimum_index_compatibility_version" : "1.2.3"
        },
        "tagline" : "You Know, for Search"
      }
    • In a web browser, navigate to the following URL:

      https://localhost:9200

    Elasticsearch loads its configuration from the /etc/elasticsearch/elasticsearch.yml file by default.

  8. If you are configuring Elasticsearch for large sites, increase the Java Virtual Machine (JVM) memory. Use a custom options file to increase the JVM memory as described in Set JVM options.

  9. To allow P4 Search to work with a self-signed Elasticsearch, do not change the default setting in etc/service.properties file:

    com.perforce.p4search.elastic.insecure=true

  10. To add your Elasticsearch certificate to the JRE keystore, see Configure Elasticsearch.

Elasticsearch is installed. By default, the installation directory is /usr/share/elasticsearch.

Next steps

Related topics