Helix Search prerequisites and installation scenarios
This section describes the perquisites and installation scenarios 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.
Prerequisites
Helix Search requires the following:
- Elasticsearch
- Helix Core server 2019.2 or later
The Elasticsearch and Helix 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, or Windows 2019 server
- Linux hosts: Ubuntu 18.04, Ubuntu 20.04, CentOS 7, or CentOS 8
- 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 SSL security for Helix Search.
Helix Server Installation Requirements
- Helix server 2019.2 or greater
- SSL or non SSL modes supported
- Unicode and non-unicode modes supported
- Connection to a Replica or Edge Helix server recommended for larger sites
- Connection to a Helix server Proxy is not supported
- A Helix Core standard user (not a service user) with a minimum of read access. For information about user types, see User types in the Helix Core Server Administrator Guide.
- A long lived ticket for the user logged in from the Helix Search host instance or with an all hosts ticket
Elasticsearch Installation Requirements
- Elasticsearch 7.6.2 to 7.13.4
- List of host addresses for Elasticsearch nodes you want to use for Helix Search
- Login credentials optional, but recommended
Installation scenarios
The following section addresses deployment of the Helix Search service based on the following scenarios:
- Small site deployment of <100 users: Helix 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 server, see Large site deployment
Helix Search is a self contained Java based Jetty application designed and tested against AdoptOpenJDK Java 11. The Windows installers and Linux packages deploy their own Java runtime environment (OpenJDK 11) and wrap it as a service.
The Helix Search JAR is available separately from the Perforce FTP site and can be deployed without the need for a service wrapper, see Manually deploy the .jar.
Small site deployment
A small site deployment typically only requires a single Helix Search service indexing a single Helix server and a single Elasticsearch index.
Large site deployment
For larger sites the Helix 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 server host MUST be different:
- projA.perforce.com:1601
- projB.perforce.com:1601
com.perforce.p4search.index=projA
com.perforce.p4search.index=projB
They can point to the same Elasticsearch server because Elasticsearch can scale by adding more Shards/Replicas.
The Helix server administrator will need to install two Lua Extensions to make sure that the indexing for both instances is kept up-to-date.
Deploy and install Helix Search
To deploy and install Helix Search on Windows or Linux use the Helix Search installer (msi installer or deb/rpm package), see Helix Search deployment and installation.