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:

Image of the P4 Search web page. A DSL query is shown in the Search box and a grid of assets is shown as a result of the 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.