Elastic Path Commerce Development

Search server clustering best practices

Search server clustering best practices

The following are some best practices for optimal index replication and search request distribution in a search server cluster.

Setting job intervals

The index builder jobs are configured to execute on an hourly basis. You may want to adjust this interval depending on the size of your indexes and the frequency of updates. For example, use a larger interval for a large number of indexes. Frequent index builds can affect performance, so it is recommended that you experiment to determine the optimal interval that balances the frequency of updates and performance.

When the script is run, it will only duplicate an index if it has changed. Therefore, you may set a lower interval without the additional overhead of duplicating unchanged indexes.

Master/slave load distribution

Although the master search server is capable of handling search requests from Cortex and Commerce Manager, we recommend that only the slave machines handle requests. There are two reasons for this:

  • Ensure consistency in search results. Due to the replication process, there is a delay between the time the master search server indexes a new object and the time it becomes searchable on the slave server. If requests only go to the slave servers, the delay will be consistent and all objects will appear at the same time once they have been indexed and replicated on all slave servers.
  • Reduce load on the master server, allowing it to focus on continuous indexing.