Prerequisites
This section describes the prerequisites for the Helix Core Search API, Helix Core Server, and Elasticsearch. The Helix Search service can be deployed in a variety of ways depending on the customers use-case.
The Elasticsearch and Helix Core Server services can be deployed on the same instance or different instances, but all of the instances must be reachable over the network.
Helix Search service installation requirements
- Windows hosts: Windows 10, Windows 2016 server, Windows 2019 server, or Windows 2022 server
- Linux hosts: Ubuntu 20.04, 22.04 and RHEL 7, 8, 9
- SSL, optional: if you want to use SSL for the Helix Search service, create a Java keystore. For instructions on creating a Java keystore, see Configure SSL security for Helix Search.
Helix Server installation requirements
- Helix Core Server 2024.1 or later
- SSL or non SSL modes supported
- Unicode and non-unicode modes supported
- Connection to a Replica or Edge Helix Core Server recommended for larger sites
- Connection to a Helix Core Server Proxy is not supported
Helix Core users
- Perforce Service User: 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 .
-
The long lived ticket must be a local ticket and not an all hosts ticket.
-
The Helix Core Server must have a valid server spec with the AllowedAddresses field set. For information about Security level 6, see Server security levels in the Helix Core Server Administrator Guide.
- Optional:Perforce Index User: 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.
For Linux installations, after the package install you can run the etc/configure.sh script file to configure users, groups, and the required permissions for Helix Core Server. The etc/configure.sh script file is located in the installation directory. For more details, see Configure using a script.
Elasticsearch installation requirements
-
Elasticsearch 7.17.11 to 7.17.26 or 8.8.1 to 8.16.1
ImportantHelix DAM may support different versions of Elasticsearch. For the Elasticsearch version that Helix DAM supports, see the Helix DAM Administrator Guide.
Installation scenarios
The following section addresses deployment of the Helix Search service based on the following scenarios:
- Small site deployment of <100 users:Helix Core Server, Elasticsearch, and Helix Search are all deployed on separate instances and a single Elasticsearch index is used, see Small site deployment
- Large deployment: multiple Elasticsearch indexes are used by Helix Search services from a single Helix Core Server, see Large site deployment
Helix Search is a self contained Java application designed and tested against AdoptOpenJDK Java 17. The Windows installers and Linux packages deploy their own Java runtime environment (OpenJDK 17) and wrap it as a service.
The Helix Search JAR is available separately from the Perforce website and can be deployed without the need for a service wrapper, see Manually deploy a JAR file.
Small site deployment
A small site deployment typically only requires a single Helix Search service indexing a single Helix Core Server and a single Elasticsearch index.
A small site is considered to be around 100K files with 3GB data in size and 7000 assets. The assets includes the 3D models but not the textures. Here are the system requirements for a small site deployment:
Service |
Resources |
Notes |
---|---|---|
Helix Search and Elasticsearch |
|
|
Helix Render |
|
Configuration options
The following default configuration options are used for a small site deployment.
-
com.perforce.p4search.index.bulksize=100
For more information about Elasticsearch batch size, see Indexer configuration.
-
com.perforce.p4search.index.threads=8
For more information about indexer thread pool size, see Indexer configuration.
-
com.perforce.p4search.tika.timeout=20000
For more information about parsing timeout, see Tika configuration.
-
com.perforce.p4search.tika.maxfilesize=104857600
For more information about maximum content file size, see Tika configuration.
Large site deployment
For larger sites the Helix Core Server data may be too large for a single Elasticsearch index.
The data can be partitioned, with arbitrary depot paths such as by Swarm Project or by Stream, and indexed by different Helix Search instances.
For example:
Two Helix Search deployments using different configured index hosts, for example: projA.perforce.com:1601 and projB.perforce.com:1601
The Elasticsearch index for each Helix Core Server host MUST be different:
- projA.perforce.com:1601
- projB.perforce.com:1601
com.perforce.p4search.index.name=projA
com.perforce.p4search.index.name=projB
They can point to the same Elasticsearch server because Elasticsearch can scale by adding more Shards/Replicas.
-
The Helix Core Server administrator will need to install two Lua Extensions to make sure that the indexing for both instances is kept up-to-date.
-
Elasticsearch recommends an index size of 50 GB for optimal performance. To align with this best practice, Helix Search now automatically creates a partitioned index once the index reaches 50 GB. This behavior is defined in the etc/policy.json file.
Proxy deployment
If you are using proxy-based permissions, you must ensure that the Helix Search IP address is added to the protections table with the appropriate permission entries.
Helix Search acts as a proxy or intermediary when granting proxy permissions. For more information, see Direct connections or intermediaries in the Helix Core Server Administrator Guide.
Related topics
To deploy and install Helix Search on Windows or Linux use the Helix Search installer (msi installer or deb/rpm package), see Install Helix Search.