Configure Helix Search

Note
  • You must be an admin user to configure Helix Search.

  • The Helix Search service must be configured to view the Service status page and to configure services using the Configuration page:

    • Windows installer: Basic Helix Search services are configured as part of the installation process.

    • Linux installation: The Helix Search service must be configured manually by editing the etc/config.properties file. See Configure the Helix Search service.

Tip

Helix Search can also be configured using the config.properties file, see Helix Search configuration.

Configure Helix Search from the web UI.

To configure Helix Search from the web UI:

  1. Select Account arrow from the top navigation bar.

  2. Select Configure and the Configuration page is displayed.

  3. Expand the configuration you want to edit, and make your changes.

  4. To update the configuration with your changes, select Apply.

Helix Search configuration

Configurable Configurable name in config.properties file Default Description

Product Name

com.perforce.p4search.service.product

p4search

The name that is shown in the Helix Core Server log.

Product version

com.perforce.p4search.service.version

0.1

The product version that is shown in the Helix Core Server log. Default value, the installed version of Helix Search.

Log Configuration File

com.perforce.p4search.service.log

./etc/log4j2.xml

Set the log file name the Helix Search log is saved as.

Configuration file location

com.perforce.p4search.service.location

 

empty

 

The location of the configuration file in the file system.

 

Host Address

com.perforce.p4search.service.host

0.0.0.0

The host IP address for the Helix Search service.

Helix Search service Port

com.perforce.p4search.service.port

1601

The port number for the Helix Search service.

Protocol

com.perforce.p4search.service.protocol

http

The protocol used for the Helix Search service. Options are: http or https.

Java Keystore Location

com.perforce.p4search.service.keystore

empty

Only if protocol is set to https. The location of the Java Keystore, see Configure SSL security for Helix Search.

Java Keystore Password

com.perforce.p4search.service.keypass

empty

Only if protocol is set to https. The location of the Java Keystore, see Configure SSL security for Helix Search.

Java Truststore Location

com.perforce.p4search.service.truststore

./etc/truststore.jks

Location of the Helix Search's local trust store.

Java Truststore Password

com.perforce.p4search.service.trustpass

<PASSWORD>

Password for the Helix Search's local trust store. This password is randomly generated.

(CORS) Allowed Origin

com.perforce.p4search.service.access-control-allow-origin

empty

Cross Origin Resource Sharing (CORS). Specify origins for the browser to allow resource access. Include your domain along with the protocol and port number. Supports comma separated values. For example, https://*.mydomain.com:1601,https://*.mydomain.com:1602

If the CORS value is left blank, the external URL value is used as an allowed origin along with the protocol and port number. To secure your site, https protocol must be used.

Setup Retry Interval

com.perforce.p4search.service.startup-retry

30000

The retry interval used by Helix Search when locating ElasticSearch and Helix Core Server Services (milliseconds).

Index Auth Token

com.perforce.p4search.service.token

00000000-0000-0000-0000-000000000000

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

The URL of the Helix Search help documentation. Enables you to change the URL of the help document. For example, if 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

The URL of your Helix Search instance as seen by other applications. For example, this external URL can be used by Helix Core Server or Helix DAM to connect to a specific instance of Helix Search.

Live log limit

com.perforce.p4search.service.live-log-limit

300

The number of live log lines to be displayed through the websocket.

Global rate limit

com.perforce.p4search.service.global-rate-limit

600

The number of requests per minute for all API endpoints. Default value, 600 requests.

Login rate limit

com.perforce.p4search.service.login-rate-limit

5

The number of login requests per minute for all API endpoints. Default value, 5 requests.

JWT Access token

com.perforce.p4search.service.access-token-ttl

600

The duration after which the JWT Access token expires. Default value, 600 seconds.

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

The duration after which the JWT Refresh token expires. Default value, 900 seconds.

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

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. Defaults to false.

To enable a nonce token, which is a unique string, set com.perforce.p4search.service.nonce to true.

Helix Core Server configuration

Configurable Configurable name in config.properties file Default Description

Perforce Port

com.perforce.p4search.core.p4port

localhost:1666

The Helix Core 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

The p4trust trusted fingerprint.

Trusted Services

com.perforce.p4search.core.allowed

empty

A comma-separated list of trusted IP addresses for Proxy services. For example, the IP address for your Swarm instance.

Perforce Service User

com.perforce.p4search.core.service.p4user

p4search

A Standard or Service user with a minimum of admin access. Used to authorize the proxy connection at security level 5 and above. For instructions on creating the Perforce Service User and printing out the ticket, see Create the Perforce Service user .

Important

Perforce Service Ticket

com.perforce.p4search.core.service.p4ticket

AEEB1208CB06479B022D97C2784EEFDA

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

Optional: A Standard user with super access. Used to read content from the Helix Core Server, to set file attributes, and to install extensions. For instructions on creating the Perforce Index User and printing out the ticket, see Create the index user . If the index user is not defined, the Perforce Service user is used.

Perforce index Ticket

com.perforce.p4search.core.index.p4ticket

AEEB1208CB06479B022D97C2784EEFDA

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

P4Ignore

com.perforce.p4search.core.p4ignore

empty

The P4IGNORE file name.

Automatic update flag for extensions

com.perforce.p4search.core.extension.auto-update

true

A flag to indicate during start-up that if extensions are out of date, then they must be automatically updated, set to true.

Indexer configuration

Configurable Configurable name in config.properties file Default Description

Perforce index

com.perforce.p4search.index.name

perforce1

Helix Search creates partitioned Elasticsearch indexes. Each index has a unique ID. 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

Set to true to index restricted Helix Core Server changelists.

Perforce revision tags

com.perforce.p4search.index.tags

empty

For use with Helix DAM only: A comma separated list of Helix Core Server file revision attribute tags to index. Any tag that begins with an index tag value in the list is indexed. The index tags are not case sensitive.

For example:

com.perforce.p4search.index.tags=DAM,FOO

If DAM and FOO are index tags, Helix Search will index any tag that begins with DAM or FOO. In this example, the DAM_TAG_bar, DAM_tag_lorry, and FOO_bar tags would all be indexed but a tag called TAG_DAM would not be indexed.

Elasticsearch batch size

com.perforce.p4search.index.bulksize

100

Maximum Elasticsearch batch size when indexing data.

Indexer thread pool size

com.perforce.p4search.index.threads

8

The number of threads Helix Search uses when indexing Helix Core Server changelists.

Generate thumbnail/preview images

com.perforce.p4search.index.thumbnail

true

Set to true to generate the blur and thumbnail/preview images when indexing is run, defaults to true.

  • Blur images are stored on the Helix Core 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. Helix DAM displays the blur images for search queries while the thumbnail/preview images are loaded.

  • Thumbnails/previews are stored on the Helix Core Server as an attribute of the original image files. They are up to 240 x 240 pixels depending on the original image's aspect ratio. P4V and Helix DAM use the thumbnails for image preview.

Thumbnail/preview image size

com.perforce.p4search.index.preview-size

1440

Thumbnail/preview image size in pixels. Set to 0 to disable preview generation.

Thumbnail/preview image type com.perforce.p4search.index.preview-ext jpg

Thumbnail/preview image type only supports jpg and webp image file types.

Enable Tesseract Optical Character Recognition (OCR)

com.perforce.p4search.index.tesseract Disable

Set to Enable to enable Tesseract OCR.

Important

For Windows operating system, you must install Tesseract to use Optical Character Recognition (OCR).

For more information on how to install Tesseract, see Tesseract installer for windows.

Location to store the live index journals

com.perforce.p4search.index.journal-path

./jnl

The location where the live index journals are stored. This location is relative to the Helix Search install location. For example, com.perforce.p4search.index.journal-path=./jnl

Journal rebuild threshold

com.perforce.p4search.index.journal-threshold

1000

Rebuilds the journal when the completed tasks exceed the threshold. Default value, 1000 tasks.

Elasticsearch configuration

Configurable Configurable name in config.properties file Default Description

Elasticsearch hosts

com.perforce.p4search.elastic.hosts

http://localhost:9200

A comma separated list of host addresses for Elasticsearch. For example, http://localhost:9200,http://localhost:9201

Elasticsearch username

com.perforce.p4search.elastic.user

empty

Elastic Search User for P4Search.

Elasticsearch password

com.perforce.p4search.elastic.pass

empty

Elastic Search Password for P4Search.

Permission Filter Required

com.perforce.p4search.elastic.filter

true

To filter user search results based on their Helix Core Server permissions (output of the p4 protect command), set to true.

This requires the installation of the Helix Core Server p4search-filter plugin for Elasticsearch, see the Elasticsearch plugin documentation. Use of the Helix Core Server p4search-filter plugin will introduce 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 might want to disable the filter if Helix Search only contains indexed data that is visible to all users.

Elasticsearch track total hits

com.perforce.p4search.elastic.tracktotalhits

10000

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

To allow Helix Search to work with a self-signed Elasticsearch certificate, set to true. To trust a different certificate, see Configure self-signed certificate.

Tika configuration

Configurable Configurable name in config.properties file Default Description

Parsing timeout (ms)

com.perforce.p4search.tika.timeout

20000

Timeout when parsing a file through Tika (in milliseconds).

Max content file size

com.perforce.p4search.tika.maxfilesize

104857600

The max file size (in bytes) that Helix Search will try and index it's content to.

Image auto-tagging configuration

Configurable Configurable name in config.properties file Default Description

Enable image auto-tagging

com.perforce.p4search.auto-detect.model

empty

Enable auto-tagging by specifying the detection model. Empty disables auto-image tagging.

Valid models are:

  • DeepDetectModel

  • AzureTagsModel

  • RekognitionLabelsModel

  • GoogleLabelModel

Auto-tagging host

com.perforce.p4search.auto-detect.host

empty

The host IP address for the auto-tagging service.

Auto-tagging language

com.perforce.p4search.auto-detect.lang

empty

The language you want the image tags to be generated in. See your auto-detect engine for supported languages.

Auto-tagging key

com.perforce.p4search.auto-detect.key

empty

The API key for the auto-tagging service you are using.

Auto-tagging threshold

com.perforce.p4search.auto-detect.threshold

0.1

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

The automatic best image detection results limit.

Auto-tagging classification service

com.perforce.p4search.auto-detect.service

empty

The classification service you want to use for image files.

For example:

com.perforce.p4search.auto-detect.service=classification_21k

In this example, the classification service is set to classification_21k for DeepDetect 21k pre-trained model.

For more information about using a pre-trained model, see Getting the pre-trained model section of the Image classifier topic.

Image Optical Character Recognition (OCR) configuration

Note

The auto-ocr model uses the auto-tagging host, language, and key to configure the auto-ocr service.

Configurable Configurable name in config.properties file Default Description

Enable image Optical Character Recognition (OCR)

com.perforce.p4search.auto-ocr.model

empty

Enable image Optical Character Recognition (OCR) by specifying the OCR model. Empty disables auto-OCR.

Valid models are:

  • AzureOcrModel

  • RekognitionOcrModel

  • GoogleOcrModel

Important

If Tesseract OCR is disabled or Tesseract OCR is not matched with a result then Helix Search uses the auto-OCR model specified above.

For more information about Tesseract OCR, see Indexer configuration.

Auto-tagging host

com.perforce.p4search.auto-detect.host

empty

The host IP address for the auto-tagging service.

Auto-tagging language

com.perforce.p4search.auto-detect.lang

empty

The language you want the image tags to be generated in. See your auto-detect engine for supported languages.

Auto-tagging key

com.perforce.p4search.auto-detect.key

empty

The API key for the auto-tagging service you are using.

Speech-to-text recognition configuration

Important
  • The Speech-to-text recognition can be used for audio and video files.

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

  • Audio or video files longer than 60 seconds are only supported for the AmazonTranscribeModel.

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

Configurable Configurable name in config.properties file Default Description

Enable speech-to-text recognition

com.perforce.p4search.auto-speech.model

empty

Enable speech-to-text recognition by specifying the auto-speech model. Empty disables auto-speech.

Valid models are:

  • AzureSpeechModel

  • AmazonTranscribeModel

  • GoogleSpeechModel

  • WhisperSpeechModel

Automatic speech recognition host

com.perforce.p4search.auto-speech.host

empty

The host IP address for the auto-speech service.

Automatic speech recognition transcription language

com.perforce.p4search.auto-speech.lang

empty

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

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

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

Set the audio transcribe limit for your auto-speech service in seconds. Currently the default audio transcribe limit is set to 60 seconds and anything above that is discarded.

Important

Audio or video files longer than 60 seconds are only supported for the AmazonTranscribeModel.

Automatic speech recognition cloud storage bucket

com.perforce.p4search.auto-speech.bucket

empty

The name of the cloud storage bucket or container where the large audio files will be stored.

Automatic cloud processing timeout

com.perforce.p4search.auto-speech.timeout

1200

The timeout limit for short audio transcription processing from the cloud services in seconds.

Limitations

The Speech-to-text recognition has the following limitations:

  • AmazonTranscribeModel does not transcribe a mp4 file of 48000 sample rate.

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

Rendering configuration

Configurable Configurable name in config.properties file Default Description

Render service

com.perforce.p4search.render.service

empty

The render service implementation. For example, AWSRenderService or LocalRenderService.

Rendering host

com.perforce.p4search.render.host

empty

Optional: The rendering service host IP address. For example, http://localhost:1602

Rendering API key

com.perforce.p4search.render.key

empty

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

The 3D model type for rendering service. For example, GLB.

Extension configuration

Important

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

Displays all the available extensions for Helix Search. The slider indicates the state of a specific extension. For an available extension, click the slider to install or delete the extension.

Helix Search Perforce extensions:

  • helix-core-search-ping.p4-extension checks if the external URL of your Helix Search instance is reachable.

  • helix-core-search-asset.p4-extension indexes your assets.

  • helix-core-search-indexer.p4-extension indexes your changes.

  • helix-core-search-obliterate.p4-extension removes obliterated files from the index.

Extension configuration

Related information:

  • For more information on extensions, see Helix Core Extensions Developer Guide.

  • For more information on managing extension endpoints, see Extension management API endpoints in Swagger Helix Search REST API.

  • For more information on how to access Swagger Helix Search REST API, see API endpoints.