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

P4 Search Documentation | 2025.3

# Access the web UI

The P4 Search web user interface (UI) enables you to search submitted changes, file revisions, file content, and assets in your P4 Server.

Get the web address for the P4 Search web UI from your administrator and open the UI in your web browser.

For example, http://myhelixsearch.mydomain.com:1601

The actual URL and port number used for the P4 Search web UI depends on your system configuration.

In the header, you have the following elements:

- Switch language

- Get online help

- Account

- Basic search

## Switch language

Select Globe to change your language preference for the P4 Search UI. Currently, you can view the P4 Search UI in English, Japanese, and Chinese.

## Get online help

To open the P4 Search help documentation, on the title bar, select Help.

## Account

Select the Account arrow to manage P4 Search:

- Theme: Select to change the P4 Search theme.
- Search: Select to search your P4 Server for submitted changes, file revisions, or file content.
- Status: Displays the overall status of the P4 Search system. See View status.
- Configure (administrators only): Select to open the P4 Search configuration page. See Configure P4 Search.
- Logger (administrators only): Select to view live logging details for the current log file, configure the log file, or manage the logs. See View live logs.
- Indexing (administrators only): Select to open the P4 Search indexing page. See Index P4 Search.
- Sign Out: Select to sign out of the P4 Search web user interface.

## Basic search

Search your P4 Server for submitted changes, file revisions, or file content as follows:

1. Enter your search term in the Search box at the top of the page and press Enter.

   By default, a date: pastWeek DSL query is used to limit the results to the past week. See Search using a DSL query.

   In the results, each file displays a ribbon with the name of the data model it belongs to.

- Search exact match: Wrap your search term with double quotes (""). For example, to find results that exactly match foo.bar.bong, enter:

"foo.bar.bong"

- Search for term-x and term-y (AND): To find results that contain term-x and term-y, separate your search terms with a space. For example, to find results that contain foo and bar, enter the following search term:

foo bar

2. To filter and order the results further, select a combination of the DSL keywords. See Search using a DSL query below.

## Search using a DSL query

To find results with different combinations of the DSL keywords, do the following:

1. Select one or more of the following keywords to create a DSL query:

   - Model: Specifies the data model you want to search for. For example, model: contentModel

   - User: Specifies the user name. For example, user: xyz

   - Ext: Specifies the file extension or the file name. For example, ext: jpeg png

   - Detected: Specifies the detected AI (Artificial Intelligence) tag. For example, detected: tree rock

   - Depot Path: Specifies the depot path that you want to perform the search on. For example, depotFile: //depot/main/*

   - Filename: Specifies the file name. For example, fileName: sky*

   - Text: Specifies any text or phrase. For example, text: "Hello World" or text: tree sky

   - Date: Specifies the date range for the submitted files. For example, date: 1996/9/19 2000/2/22:23:59:59 or date: now -5days.

   - Revision: Specifies a revision range. For example, rev: latest

   - Change: Specifies a changelist range. For example, change: 10223 10230

   - Content: Specifies any text or phrase that exists in the file contents. For example, content: "fixed bug"

   - Description: Specifies the changelist description to search for. For example, description: "fixed a bug"

   - Size: Specifies the file size in KB, MB, GB, TB, PB, or EB. For example, size: 3MB 8MB

   - Tag: Specifies the user defined tags. For example, tag: "red hat" hat

2. Each DSL keyword may use one of the following three boolean queries:

   - Should: Specifies one term or another term that should be included in the search results.

   - Must: Specifies the term that must exist in the search results.

   - Must Not: Specifies the term that must not be included in the search results.

For more information about DSL queries, see Domain specific language query.

To build a DSL query:

1. Select a keyword. The keyword dialog displays.

2. Select the required boolean query.

3. Select the Case Sensitive checkbox if you want to implement case sensitivity for matching a keyword value in the results. Case sensitivity option is only available for User, Ext, Depot Path, and FileName.

4. Select a value from the dropdown list or enter a search string.

5. Select Apply. Your search term is displayed in the Search box at the top of the page.

6. Select Enter to filter your search.

### Domain specific language query

This section describes how to access data in P4 Search using the Domain Specific Language (DSL). All users, admins, and super users can perform search using a DSL query.

You must use the DSL keywords in conjunction with Boolean queries to perform complex searches in P4 Search.

#### DSL keywords

Here is a list of all the DSL keywords that you can use to perform a search. The DSL keywords must be used in conjunction with the Boolean queries.

Keyword | Description | Query type | Case sensitive? | Examples
--- | --- | --- | --- | ---
text | Specify any text or phrase you want to search for. | multiMatch | No | text: "Hello World" text: tree sky
model | Specify the data model you want to search for. See Data model. | term | No | model: content
depotFile | Specify the depot path using a wildcard character '*'. If you have special characters in your depot path, then you can use double quotes in the DSL query. | wildcard | Yes | depotFile: //depot/main/* depotFile: "//depot/- 200/tests/*"
fileName | Specify the file name using a wildcard character '*'. | wildcard | Yes | fileName: sky*
detected | Specify the detected AI (Artificial Intelligence) tags. | list of match | No | detected: tree rock
tag | Specify the user-defined tags. | list of match | No | tag: "red hat" hat
ext | Specify the file extension or the file name. | list of wildcard | Yes | ext: jpeg png
description | Specify the changelist description within quotes. | match_phrase_prefix | No | description: "fixed a bug"
date | Specify a date range or a date +/- a duration. You can also use the terms now, pastHour, pastDay, pastWeek, pastMonth, and pastYear. | range | Yes | date: 2020/9/19 2023/2/22:23:59:59 date: pastDay date: now - 3hours date: pastWeek - 1day date: 1996/9/19 + 2weeks
size | Specify the file size. Accepts values in KB or KiB up to EiB. | range | Not applicable | size: 3MB 8MB
user | Specify the user name. | term | Yes | user: axyz
rev | Specify the revision range or use 'latest'. | range | Not applicable | rev: latest
change | Specify the changelist range or use 'latest'. | range | Not applicable | `change: 10223 10230`
content | Specify the content of a file to match a query. | match_phrase_prefix | No | content: "fixed bug"
dimension | Specify the 2D pixel dimension. | range | Not applicable | dimension: width >= 1024
scene | Specify the 3D scene geometry. | range | Not applicable | scene: meshes > 30

#### Boolean queries

Query | Description | Bool type | Example
--- | --- | --- | ---
MUST + | Specify the term that must exist in the search results. | must | MUST user: axyz Returns all the files in the results where the user name matches 'axyz'.
NOT - | Specify the term that must not be included in the search results. | must_not | -depotFile: //depot/test/* Returns files from all depot paths except for '//depot/test/'
<empty> | Specify one term or another term that should be included in the search results. | should | detected: tree description: "Pine tree" Returns all the files that have AI tag 'tree' or have 'Pine tree' in the description.
CASE = | Specify case sensitivity for a DSL keyword that should be included in the search results. | case | =depotFile: //DEPOT/test/* Returns all files from the path '//DEPOT/test/*'

#### Usage examples

This section outlines a few DSL example queries run from the P4 Search web UI.

Sample DSL query 1

MUST model: asset tags: tree rock -depotFile: "//depot/- 200/tests/*" +user: axyz

This DSL query will perform a search and get results for all the files in P4 Search that match the following criteria:

- the data model type is 'asset'

- the search matches the AI tags 'tree' or 'rock'

- excludes all files in the depot file path '//depot/tests/'

- matches the user name 'axyz' only

Sample DSL query 2

+date: 2022/7/26 2022/8/1 +model: asset

This DSL query will perform a search and get results for all the assets that were submitted in the specified date range.

Sample DSL query 3

ext: fbx obj MUST tags: white light MUST size: 3MB 100MB +model: asset

This DSL query will perform a search and get results for all the files in P4 Search that match the following criteria:

- the file extension can be fbx or obj

- the AI tags in a file must contain both the tags 'white' and 'light'

- the file size must be between 3MB and 100MB

- the data model type must be an 'asset'

Sample DSL query 4

MUST ext: fbx obj MUST size: 3MB 100MB

This DSL query will perform a search and get results for all the files in P4 Search that match the following criteria:

- the file extension can either be fbx or obj, but not both, so this will not return any results

- the file size must be between 3MB and 100MB

Sample DSL query 5

=+ext: JPG MUST size: 3MB 100MB +model: asset

This DSL query will perform a search and get results for all the files in P4 Search that match the following criteria:

- the file extension must be JPG (case sensitive)

- the file size must be between 3MB and 100MB

- the data model type must be an 'asset'

For more information about the DSL query API endpoints, see DSL query API endpoints.

Your search for returned results