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:
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
- 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.
The following table depicts the key differences between the Solr and Elasticsearch deployment architecture:
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) |