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

P4 Search Documentation | 2026.1

# P4 Search configuration reference

The following tables list the P4 Search configurables, default values, where they are configured from, and the configurable details. The configurables are set from the P4 Search web UI or one of the properties files. To learn whether to set a configurable in the P4 Search web UI or in one of the local properties files, see the Configured from column in the tables below.

To learn more about setting the configurables in the P4 Search web UI or in a local properties file, see Configure P4 Search from the web UI. or Configure P4 Search locally.

You must have admin permissions to configure P4 Search.

## Configure the P4 Search service

Configurable name | Configurable | Default | Configured from | Details
--- | --- | --- | --- | ---
Product version | com.perforce.p4search.service.version | 0.1 | service.properties file | The product version that is shown in the P4 Server log. Default value: the installed version of P4 Search.
Log configuration file | com.perforce.p4search.service.log | ./etc/log4j2.xml | service.properties file | Set the file name for the P4 Search log.
Host address | com.perforce.p4search.service.host | 0.0.0.0 | service.properties file | The host IP address for the P4 Search service.
Tenant ID | com.perforce.p4search.service.tenant-id | default | default.config.properties file | Set the tenant ID to default. The configurable must be in lowercase. ( future enhancement)
P4 Search service port | com.perforce.p4search.service.port | 1601 | service.properties file | The port number for the P4 Search service.
Protocol | com.perforce.p4search.service.protocol | http | service.properties file | The protocol used for the P4 Search service. Public to machines on the same network by default. Options are http or https.
Java key store location | com.perforce.p4search.service.keystore | empty | service.properties file | The location of the Java Keystore. Only applies if protocol is set to https. See Secure P4 Search communications.
Java key store password | com.perforce.p4search.service.keypass | empty | service.properties file | The location of the Java Keystore. Only applies if protocol is set to https. See Secure P4 Search communications.
Java trust store location | com.perforce.p4search.service.truststore | ./etc/truststore.jks | service.properties file | Location of the P4 Search local trust store.
Java trust store password | com.perforce.p4search.service.trustpass | <PASSWORD> | service.properties file | Password for the P4 Search local trust store. This password is randomly generated.
(CORS) Allowed origin | com.perforce.p4search.service.access-control-allow-origin | empty | service.properties file | Specify origins for the browser to allow resource access. This type of permission is also known as Cross Origin Resource Sharing (CORS). Include your domain along with the protocol and port number. Comma-separated values are supported. For example, https://*.mydomain.com:1601,https://*.mydomain.com:1602 If the CORS value is empty (the default), the external URL value is used as an allowed origin along with the protocol and port number. To secure your site, you must use https as the protocol.
Setup retry interval | com.perforce.p4search.service.startup-retry | 30000 | service.properties file | The retry interval used by P4 Search when locating Elasticsearch and P4 Server Services (in milliseconds).
Index auth-token | com.perforce.p4search.service.token | 00000000-0000-0000-0000-000000000000 | service.properties file | An X-Auth-Token to validate configuration requests.
Help URL | com.perforce.p4search.help.url | https://www.perforce.com/manuals/ p4search/Content/P4Search/Home-p4search.html | service.properties file | The URL of the P4 Search help documentation. Changing this URL is useful if, for example, you are running an isolated system and need to host it on your own server.
External URL | com.perforce.p4search.service.external-url | http://localhost:1601 | service.properties file | The URL of your P4 Search instance as seen by other applications. For example, this external URL can be used by P4 Server or P4 DAM to connect to a specific instance of P4 Search.
Live log limit | com.perforce.p4search.service.live-log-limit | 300 | service.properties file | The number of live log lines displayed in the logging window of the P4 Search web UI.
Global rate limit | com.perforce.p4search.service.global-rate-limit | 600 | service.properties file | The number of requests allowed per minute for all API endpoints.
Login rate limit | com.perforce.p4search.service.login-rate-limit | 5 | service.properties file | The number of login requests allowed per minute for all API endpoints.
JWT access token | com.perforce.p4search.service.access-token-ttl | 600 | service.properties file | The duration after which the JWT Access token expires. Ensure that the value of the JWT access token is always smaller than the value of the JWT refresh token.
JWT refresh token | com.perforce.p4search.service.refresh-token-ttl | 900 | service.properties file | The duration (in seconds) after which the JWT Refresh token expires. Ensure that the value of the JWT refresh token is always greater than the value of the JWT access token.
Nonce token | com.perforce.p4search.service.nonce | false | P4 Search Web UI only | A nonce token is a unique, random number or string that is used only once and then discarded. It acts as a security measure to prevent replay attacks in communication protocols, particularly in API requests. The nonce token is included in the request header along with the authentication token, and it must be present in all API requests for security purposes. This practice ensures that each request is unique, even when the same authentication details are used. To enable a nonce token, which is a unique string, set com.perforce.p4search.service.nonce to true.
Initial DSL query | com.perforce.p4search.service.default-dsl-query | +date: pastWeek | P4 Search Web UI only | The default DSL search query. See Run a basic search.

## Configure P4 Server

The P4 Server connection requires a P4Port, a Perforce Standard user, and a ticket.

If your P4 Server is SSL-enabled, set p4port to the ssl protocol and p4trust to the trusted fingerprint. For example:

com.perforce.p4search.core.p4port=ssl:perforce.com:1666

com.perforce.p4search.core.p4trust=59:75:62:6C:4F:C9:53:F5:4A:30:90:FF:C9:60:01:10:C7:D0:ED:1F

Configurable name | Configurable | Default | Configure from | Details
--- | --- | --- | --- | ---
Perforce port | com.perforce.p4search.core.p4port | localhost:1666 | default.config.properties file | The P4 Server RPC host and port. For example, perforce.com:1666, or ssl.perforce.com:1666 if protocol is set to https.
P4Trust | com.perforce.p4search.core.p4trust | empty | default.config.properties file | The p4trust trusted fingerprint.
Trusted Services | com.perforce.p4search.core.allowed | empty | tenant.config.properties file | A comma-separated list of trusted IP addresses for proxy services. For example, the IP address for your P4 Code Review instance. If you are using P4 Search with another service, such as P4 Code Review, and are using P4 Server Security level 5 and higher, provide a list of trusted IP addresses for the services. For example: com.perforce.p4search.core.allowed=swarm.perforce.com,proxy.perforce.com
Perforce Service user | com.perforce.p4search.core.service.p4user | p4search | default.config.properties file | Can be a Standard or Service user type with a minimum of admin access. Used to authorize the proxy connection at Security level 5 and above. To learn more about creating the Service user and printing out the ticket, see Create users and tickets for external services. The long-lived ticket must be a local ticket. The P4 Server must have a valid server spec with the AllowedAddresses field set. To learn more about Security level 6, see Server security levels in the P4 Server Administration Documentation.
Perforce service ticket | com.perforce.p4search.core.service.p4ticket | AEEB1208CB06479B022D97C2784EEFDA | default.config.properties file | The long-lived ticket to authorize the Perforce Service User. To print out a long-lived ticket for the Perforce service user that is valid for all hosts, run the following command : p4 -p <p4port> -u <p4user> login -a -p.
Perforce Index user | com.perforce.p4search.core.index.p4user | p4index | default.config.properties file | Optional:Must be a Standard user type with super access. Used to read content from the P4 Server, to set file attributes, and to install extensions. For instructions on creating the Index user and printing out the ticket, see Create users and tickets for external services.
Perforce index ticket | com.perforce.p4search.core.index.p4ticket | AEEB1208CB06479B022D97C2784EEFDA | default.config.properties file | The long-lived ticket to authorize the index user. To print out a long-lived ticket for the index user that is valid for all hosts, run the following command : p4 -p <p4port> -u <p4user> login -a -p.
Automatic update flag for extensions | `com.perforce.p4search.core.extension.auto-update` | true | P4 Search Web UI only | A flag to automatically update extensions during start-up.
Maximum sync file size | com.perforce.p4search.core.maxfilesize | 1073741824 | P4 Search Web UI only | File size limit (in bytes) when syncing from Perforce. The maxfilesize limit is to prevent large synchronizations and to prevent indexing the entire server. If you increase this limit, you might need to increase the memory (RAM) on your P4 Search instance.

## Configure the index

P4 Search indexes P4 Server data when called with the REST API. See the index endpoints in the Swagger P4 Search REST API.

Configurable name | Configurable | Default | Configure from | Details
--- | --- | --- | --- | ---
Perforce index | com.perforce.p4search.index.name | perforce1 | default.config.properties file | P4 Search creates partitioned Elasticsearch indexes. Each index has a unique ID. The ID must be in lowercase. This ID is used to create an alias (for example, alias-perforce1) and underlying indexes (for example, index-perforce1-000001). If you're using multiple indexes, ensure they have distinct IDs.
Restricted changes | com.perforce.p4search.index.restricted | true | P4 Search Web UI only | Set to true to index restricted P4 Server changelists.
Elasticsearch batch size | com.perforce.p4search.index.bulksize | 100 | P4 Search Web UI only | Maximum number of changes in a single bulk request to Elasticsearch.
Indexer thread pool size | com.perforce.p4search.index.threads | 8 | service.properties file | The number of threads P4 Search uses when indexingP4 Server changelists.
Generate thumbnail/preview images | com.perforce.p4search.index.thumbnail | true | P4 Search Web UI only | Set to true (the default) to generate the blur and thumbnail/preview images when indexing is run. Blur images are stored on the P4 Server as an attribute of the original image file and indexed in Elasticsearch. They consist of a 4-pixel image stored as a Hash String that loads extremely quickly. P4 DAMdisplays the blur images for search queries while the thumbnail/preview images are loaded. Thumbnails/previews are stored on the P4 Server as an attribute of the original image file. They are up to 240 x 240 pixels depending on the original image's aspect ratio. P4V and P4 DAM use thumbnails for image previews.
Thumbnail/preview image size | com.perforce.p4search.index.preview-size | 1440 | P4 Search Web UI only | The thumbnail/preview image size (in pixels). Set to 0 to disable preview generation.
Thumbnail/preview image type | com.perforce.p4search.index.preview-ext | jpg | P4 Search Web UI only | The thumbnail/preview image type. Only supports jpg and webp.
Image ribbon | com.perforce.p4search.index.ribbon | true | P4 Search Web UI only | Generate a ribbon of sprites for videos and 3D models on index.
Ribbon sprites | com.perforce.p4search.index.ribbon-sprites | 32 | P4 Search Web UI only | The number of sprites in the ribbon. Ribbons are used to generate thumbnail animations for videos and 3D models. Each sprite in the ribbon corresponds to one frame in the animation.
Enable Tesseract optical character recognition (OCR) | com.perforce.p4search.index.tesseract | Disable | P4 Search Web UI only | Set to Enable to enable Tesseract OCR. For a Windows operating system, you must install Tesseract to use Optical Character Recognition (OCR). To learn more about installing Tesseract, see Tesseract installer for Windows.
Location to store the live index journals | com.perforce.p4search.index.journal-path | ./jnl | service.properties file | The location where the live index journals are stored, relative to the P4 Search install location.
Journal rebuild threshold | com.perforce.p4search.index.journal-threshold | 1000 | service.properties file | When the number of completed tasks exceeds the threshold, the journal is rebuilt.
Index file content into Elasticsearch | com.perforce.p4search.index.content | true | P4 Search Web UI only | Enable/disable indexing file content into Elasticsearch.

## Configure Elasticsearch

To learn more about the Elasticsearch plugin, see the Elasticsearch plugin documentation.

To configure additional Elasticsearch settings, see Configure Elasticsearch settings.

Configurable name | Configurable | Default | Configure from | Details
--- | --- | --- | --- | ---
Elasticsearch hosts | com.perforce.p4search.elastic.hosts | http://localhost:9200 | service.properties file | A comma-separated list of host addresses for Elasticsearch. For example, http://localhost:9200,http://localhost:9201 To configure Elasticsearch hosts, P4 Search must have access to Elasticsearch to create and update the alias index for the P4 Server data. P4 Search creates a partitioned index. If you are using multiple instances of P4 Search, ensure that you use a different index name for each instance.
Elasticsearch username | com.perforce.p4search.elastic.user | empty | service.properties file | Elasticsearch user for P4 Search. Use to configure Elasticsearch authentication.
Elasticsearch password | com.perforce.p4search.elastic.pass | empty | service.properties file | Elasticsearch password for P4 Search. Use to configure Elasticsearch authentication.
Permission filter required | com.perforce.p4search.elastic.filter | true | service.properties file | To filter user search results based on their P4 Server permissions (output of the p4 protect command), set to true. This requires the installation of the P4 Server p4search-filter plugin for Elasticsearch. See the Elasticsearch plugin documentation. Use of the P4 Server p4search-filter plugin introduces a small overhead in the query time. This is mainly determined by the number of protection entries that are applied to the user running the query. In some situations, you can disable the filter if P4 Search contains only indexed data that is visible to all users.
Elasticsearch track total hits | com.perforce.p4search.elastic.tracktotalhits | 10000 | P4 Search Web UI only | Maximum accurately counted total hit by Elasticsearch. To tune performance, set a limit to the number of results processed by a single query.
Elasticsearch self-signed certificate | com.perforce.p4search.elastic.insecure | true | service.properties file | To allow P4 Search to work with a self-signed Elasticsearch certificate, set to true (the default). To trust a different certificate, set to false and run the following command: /opt/perforce/helix-p4search/jre/bin/keytool -importcert -alias elasticCA -keystore /opt/perforce/helix-p4search/jre/lib/security/cacerts -storepass changeit -file <location of your Elasticsearch certificate> -noprompt where the location of your Elasticsearch certificate is located on the Elasticsearch host, /etc/elasticsearch/certs/http_ca.crt.

## Configure Tika

Configurable name | Configurable | Default | Configure from | Details
--- | --- | --- | --- | ---
Parsing timeout (ms) | com.perforce.p4search.tika.timeout | 20000 | P4 Search Web UI only | Timeout (in milliseconds) when parsing a file through Tika.
Max content file size | com.perforce.p4search.tika.maxfilesize | 10485760 | P4 Search Web UI only | Maximum file size limit (in bytes) when indexing a file's content through Tika.

## Configure image auto-tagging

To enable auto-tagging for images, specify an auto-tagging model. To learn more, see Connect an image tagging model.

Configurable name | Configurable | Default | Configure from | Details
--- | --- | --- | --- | ---
Image detection service | com.perforce.p4search.auto-detect.model | empty | P4 Search Web UI only | The model used for auto-tagging images. An empty value (the default) disables image auto-tagging. Supported models include: ClipModel (OpenAI) OpenAiDetectModel (OpenAI) AzureTagsModel (Azure) `RekognitionLabelsModel` (AWS) GoogleLabelModel (Google) DeepDetectModel (DeepDetect)
Auto-tagging host | com.perforce.p4search.auto-detect.host | empty | P4 Search Web UI only | The host IP address for the auto-tagging service. Configurable shared with the Configure image auto-OCR configurable.
Auto-tagging language | com.perforce.p4search.auto-detect.lang | empty | P4 Search Web UI only | The language you to generate the image tags in. For example, en (English). For supported languages, see the documentation for your auto-tagging service. Configurable shared with the Configure image auto-OCR configurable.
Auto-tagging key | com.perforce.p4search.auto-detect.key | empty | P4 Search Web UI only | The API key for the auto-tagging service you are using. Configurable shared with the Configure image auto-OCR configurable.
Auto-tagging threshold | com.perforce.p4search.auto-detect.threshold | 0.6 | P4 Search Web UI only | The automatic image detection threshold as a floating point percentage. For example, 0.1=10%.
Auto-tagging best image result | com.perforce.p4search.auto-detect.best | 10 | P4 Search Web UI only | The automatic best image detection results limit.
Auto-tagging classification service | com.perforce.p4search.auto-detect.service | empty | P4 Search Web UI only | The classification service used for image files. The following OpenAI services are supported: gpt-5-nano gpt-5-mini gpt-4.1-mini o4-mini The following P4 Detect models are supported: clip_model The following DeepDetect services are supported: classification_21k imageserv To learn more about using a DeepDetect model, see Setup of an image classifier from the DeepDetect server documentation.
Auto-tagging prompt | com.perforce.p4search.auto-detect.query | empty | P4 Search Web UI only | A prompt to tailor results. For example, "Identify objects in the image".
Accept third-party provider | com.perforce.p4search.auto-detect.accept-usage-key | empty | P4 Search Web UI only | Accept usage of your API key through an external provider. You must enter the phrase referenced in Bring your own key for P4 Search.

## Configure image auto-OCR

To enable automated optical character recognition (OCR) for images, specify an OCR model. To learn more, see Connect an OCR model.

To use OCR on Windows, you must install and enable Tesseract and ImageMagick. See Install Tesseract and ImageMagick (OCR).

Configurable name | Configurable | Default | Configure from | Details | Stored in
--- | --- | --- | --- | --- | ---
Auto-OCR model | com.perforce.p4search.auto-ocr.model | empty | P4 Search Web UI only | The model used for auto-OCR of images. An empty value (the default) disables auto-OCR. Valid models include: AzureOcrModel `RekognitionOcrModel` GoogleOcrModel If Tesseract OCR is disabled or Tesseract OCR is not matched with a result, then P4 Search uses one of the auto-OCR models specified. To learn more about Tesseract OCR, see P4 Search configuration reference. |
Auto-tagging host | com.perforce.p4search.auto-detect.host | empty | P4 Search Web UI only | The host IP address for the auto-tagging service. Configurable value shared with the Configure image auto-tagging configurable. |
Auto-tagging language | com.perforce.p4search.auto-detect.lang | empty | P4 Search Web UI only | The language you want the image tags to be generated in. See your auto-detect engine for supported languages. Configurable value shared with the Configure image auto-tagging configurable. |
Auto-tagging key | com.perforce.p4search.auto-detect.key | empty | P4 Search Web UI only | The API key for the auto-tagging service you are using. Configurable value shared with the Configure image auto-tagging configurable. |

## Configure automated speech-to-text

To enable automated speech-to-text for audio and video files, specify an auto-speech recognition model. To learn more, see Connect a speech-to-text model.

All audio and video files up to 60 seconds are referred to as short audios.

- AzureSpeechModel and GoogleSpeechModel can only transcribe up to 60 seconds of audio and video files.

- For audio and video files up to 60 seconds, the audio is transcribed synchronously. Files longer than 60 seconds are skipped unless you are using AmazonTranscribeModel.

- `AmazonTranscribeModel` does not transcribe mp4 files with a sample rate of 48000 Hz.

Configurable name | Configurable | Default | Configure from | Details
--- | --- | --- | --- | ---
Auto-speech recognition model | com.perforce.p4search.auto-speech.model | empty | P4 Search Web UI only | The model used for automated speech-to-text for audio and video files. An empty value (the default) disables automated speech-to-text. Valid models include: AzureSpeechModel `AmazonTranscribeModel` GoogleSpeechModel WhisperSpeechModel
Automatic speech recognition host | com.perforce.p4search.auto-speech.host | empty | P4 Search Web UI only | The host IP address for the auto-speech service.
Automatic speech recognition transcription language | com.perforce.p4search.auto-speech.lang | empty | P4 Search Web UI only | The language of the audio you want to be transcribed. This configurable is optional for WhisperSpeechModel.
Automatic speech recognition API key | com.perforce.p4search.auto-speech.key | empty | P4 Search Web UI only | The API key for the auto-speech recognition service you are using. This configurable is optional for WhisperSpeechModel.
Automatic speech recognition threshold | com.perforce.p4search.auto-speech.threshold | 0.6 | P4 Search Web UI only | Set the automatic speech recognition threshold for your auto-speech service as a floating point percentage. The automatic speech recognition threshold is the accuracy returned by your auto-speech service. For example, 0.6=60%. In this example, when auto-speech threshold is set to 0.6, any transcription with 60% accuracy is accepted by the auto-speech service and anything below that is discarded.
Automatic speech recognition short audio transcribe limit | com.perforce.p4search.auto-speech.short-audio | `60` | P4 Search Web UI only | Set the audio transcribe limit for your auto-speech service in seconds. The default audio transcribe limit is set to 60 seconds and anything longer than that is discarded.
Automatic speech recognition cloud storage bucket | com.perforce.p4search.auto-speech.bucket | empty | P4 Search Web UI only | The name of the cloud storage bucket or container where the large audio files are stored. This is only available for AmazonTranscribeModel.
Automatic cloud processing timeout | com.perforce.p4search.auto-speech.timeout | 1200 | P4 Search Web UI only | The timeout limit for short audio transcription processing from the cloud services (in seconds).

## Configure rendering

Configurable name | Configurable | Default | Configure from | Details
--- | --- | --- | --- | ---
Render service | com.perforce.p4search.render.service | empty | P4 Search Web UI only | The render service implementation. For example, AWSRenderService or LocalRenderService.
Rendering host | com.perforce.p4search.render.host | empty | P4 Search Web UI only | Deprecated.
Rendering API key | com.perforce.p4search.render.key | empty | P4 Search Web UI only | The rendering service API security key for use with AWSRenderService. The LocalRenderService uses the X-Auth-Token configured in Index auth-token.
Render 3D model | com.perforce.p4search.render.model | empty | P4 Search Web UI only | The 3D model type for rendering service. For example, GLB.

## Configure extensions

Extensions require P4 Server 2021.2 or later. If you are using an earlier version of P4 Server, you must use triggers and not extensions.

Extensions have no default value, but can instead be installed or deleted by using toggles on the P4 Search web UI. See Update the P4 Search configuration.

Configurable name | Configurable | Default | Details
--- | --- | --- | ---
Helix Core Search Ping | helix-core-search-ping.p4-extension | N/A | Checks if the external URL of your P4 Search instance is reachable.
Helix Core Search Asset | helix-core-search-asset.p4-extension | N/A | Indexes your assets.
Helix Core Search Indexer | helix-core-search-indexer.p4-extension | N/A | Indexes your changes.
Helix Core Search Obliterate | helix-core-search-obliterate.p4-extension | N/A | Removes obliterated files from the index.

## Related topics

- To configure P4 Code Review to use P4 Search, see Connect P4 Search to P4 Code Review.

- To learn more about extensions, see the P4 Server Administration Documentation.

- To learn more about managing extension endpoints, see Extension management API endpoints in the Swagger P4 Search REST API.

- To learn more about the Swagger P4 Search REST API, see Access the Swagger REST API.

Your search for returned results