Integration with P4 Search

P4 Search, powered by Elasticsearch, enhances search capabilities across various Perforce products, including P4V. P4 Search indexes versioned file content, metadata, revision details, and change descriptions within P4. By supporting a wide range of search, P4 Search reduces the search load on the P4 Server.

Set up the P4 Search integration

To take advantage of P4 Search capabilities, you must complete setup tasks, including specifying a P4 Search URL and enabling P4 Search for users.

For details about specifying the URL, see P4 Search integration property in the P4 Server Administration Documentation.

The following example shows how to run p4 property commands to set up the P4 Search integration:

  • Setting the global P4 Search URL:

    p4 property -a -n P4.P4Search.URL -v https://localhost:1601

    where https://localhost:1601 is the URL of your P4 Search instance.

  • Enabling P4 Search for a specific user:

    p4 property -a -u jennifer -n P4.P4Search.URL -v https://localhost:1601

    where jennifer is the username.

  • Enabling P4 Search for a specific group:

    p4 property -a -g bostongroup -n P4.P4Search.URL -v

    where bostongroup is the group name.

Start a search

After P4 Search is integrated, a P4 Search toggle is displayed in the Submitted changelist tab. You can then search your P4 Server using the enhanced capabilities of P4 Search.

Search Tips

P4 Search indexes text by identifying all words and storing them as query phrases. A query phrase is a sequence of words separated by spaces. The final word in each query phrase is treated as a prefix. For example, the query phrase foo ba will match words like foo bar and foo baz.

Query phrases can be specified as lists of words separated by spaces, for example:

foo ba

Multiple query phrases can be included in the field by separating them with commas, for example:

job,bug report

To start a search, follow these steps:

  1. Ensure that the P4 Search toggle is turned on.

  2. In the search Filter, select one or more of the following search categories:

    • Change: Specify a range of changelists. For example, 10223 to 10230.

    • Date: Specify a date range for submitted files. For example, 29 April 2025 13:16:09 to 06 May 2025 13:16:09.

    • Files: Specify the depot path. If the path includes special characters, add double quotation marks. For example, if the path is //depot/-200/main/*, you would enter the following value:

      "//depot/-200/main/*"

    • Description: Specify one or more changelist descriptions.

    • User: Specify a user name. For example, xyz.

  3. Select one of the following Boolean queries:

    • must match: Returns results that exactly match all query phrases.

      When a must match query is used, all query phrases must be present in the documents for them to be returned as results. This query functions like an "AND" operator, ensuring that every condition is satisfied.

    • should match: Returns results that contain at least one of the specified terms.

      When a should match query is used, any matched query phrase increases the relevance score of the document. However, it is not necessary for documents to match all query phrases to be included in the results. This query functions like an "OR" operator, meaning that matching any query phrases is enough for a document to be considered.

    • must not match: Excludes results that contain the specified term.

  4. For the Description search category, select one of the following options from the list:

    • includes any of the phrases: If even one of your query phrases matches part of the description, the changelist is included in the search result. For example, if your query phrase is foo ba, the results will match the following descriptions:

      This is a foo bar task

      The issue was foo baz

    • includes all of the phrases: A description must match every query phrase that you specify. For example, if your query phrase is foo ba, bug rep, the returned results can include the following descriptions:

      We received a bug report related to the foo bar feature.

      However, a document with the following description will not be retrieved:

      This is a foo bar issue.

    • does not include any of the phrases: A description is included only if it matches none of the specified query phrases. For example, if your query phrase is foo ba, bug rep, the returned results will match the following descriptions:

      The feature is live in production.

      However, the following descriptions will not be returned:

      This task is a bug report.

      This is a foo bar related bug report.

  5. Enter any additional search criteria. The search results are automatically populated.

    Click Add more search criteria to add more search criteria and click Remove search criteria to delete one or more of the search criteria.

You can save, reuse, and manage your search filters. To learn more, see Save and reuse filters.