Comparing Solr and Elasticsearch architectures

The Solr and Elasticsearch systems behave similarly at the storefront level. Behind that layer are certain key differences in architecture.

Solr search architecture

The Solr search server consists of a set of REST services, a search runtime framework that reuses the Solr search programming model, and a set of HCL Commerce foundation services that also provide access to the HCL Commerce database.

The following diagram shows the Solr search server architecture:

Search interaction diagram

The V9.1 Ingest and Query services

The Elasticsearch query process is structured very similarly to the Solr service. The main difference lies in the microservice architecture of the system, and the exits to the Elasticsearch and the ZooKeeper administrative functions, rather than to Solr and the monolithic search server.

One of the biggest advantages the 9.1 Query service provides is its natural language processing and tooling support. Solr does not have these features and they provide considerable extra power. For more information, see Natural Language Processing (NLP) in Version 9.1.

Comparing Solr and Elasticsearch deployment architecture

There are certain deployment architecture differences between the HCL Commerce search solution based on Solr and the HCL Commerce search solution based on Elastcsearch. Unlike Solr, the HCL Commerce search solution based on Elasticsearch contains common data environment. It has the following benefits:
  • Enables capacity sharing.
  • De-couples indexed data from the query service to allow to scale each service independently.
  • Uses Index cluster to allow dynamic scaling.
  • Shards index and uses distributed search at query time.
In addition to the common data environment, certain new components such as indexing pipeline, NLP, event bus have been added to the HCL Commerce search solution based on Elasticsearch.

The following table depicts the key differences between the Solr and Elasticsearch deployment architecture:

Important: In the following table x indicates the scale-up parameter where you can deploy more instances.
Service name Solr Elasticsearch
Store (Authoring environment) x1(Server) x1(Web or Server)
Transaction (Authoring environment) x1 x1
Search (Authoring environment) x1(Master) x1(Query)
Store (Live environment) x1 x1(Web or Server)
Transaction (Live environment) x1 x1
Search Live environment) x1(Repeater), x3 (Slave) x3(Query)
Ingest (shared) Not applicable x1 (NiFi)
Data (shared) Not applicable Elasticsearch cluster
Event bus (shared) Not applicable x1 (Redis)