Components of P4 Search

P4 Search relies on the P4 Search service, P4 Server, Elasticsearch, and P4 Render to function.

About the P4 Search service

P4 Search is made up the P4 Search service (back end) and a front end UI. The P4 Search service is powered by Elasticsearch and connects to a P4 Server (P4D).

The P4 Search service is a wrapped JAR that runs as a Windows or Linux service. It uses a Java properties file, config.properties, to store the service configuration details and connection information for the P4 Server and Elasticsearch instance.

The P4 Search service is used by other Perforce products to enhance their search capabilities. For example, P4 Code Review and P4 DAM have REST APIs that connect to the P4 Search service.

P4 Search system overview diagram

About P4 Server

P4 Server (P4D) provides version control. It securely versions digital content, including large files, in a single repository. To learn more, see the P4 Server Administration Documentation.

About Elasticsearch

Elasticsearch is the engine used for indexing, searching, and analyzing data. To learn more, see the Elasticsearch documentation.

About P4 Render

P4 Render is a service that processes 3D assets from P4 Search's render queue and creates a preview of the image. The previews are stored in P4 Server as an attribute on the asset's versioned revision file. The previews are then used by P4 Search for AI tagging and for generating thumbnail or blur images.

The P4 Render service is in Technology Preview. Features offered in Technology Preview are experimental and not guaranteed to always work as expected. If you have feedback and functionality suggestions, email techpreview@perforce.com.

The P4 Render service uses background processes, called workers, to poll the render queue in P4 Search. You can have multiple workers to help manage the render queue load.

P4 Render can be installed on multiple hosts.

System diagram

The following diagram shows how P4 Render integrates with P4 Search and P4 Server.

System diagram showing how P4 Search integrates with P4 Render and P4 Server

When an asset is submitted and is suitable for rendering, P4 Search adds it to the render queue. Workers poll the P4 Search render queue looking for a new asset to process. When a worker finds a new asset to process, the worker fetches the asset and associated texture files from P4 Server by using the p4 print command.

The worker then renders the 3D asset files to produce a preview file in JPEG format (and, optionally, in GLB format). These generated files are then added back to P4 Server as binary attributes using p4 attributes on the 3D asset's revision (with the attribute names 'preview' and 'model').

The update to the asset revision's attributes triggers a further re-index of the asset, now using the rendered preview for thumbnail, blur, and AI detection.