| What usually triggers it? | Solr 8 or older in production. The Apache project lists every release below 9.11 as end of life and warns that community help for them may be hard to get. | The team already runs Elastic for logs or security, wants Kibana and Elastic's solutions, or wants Elastic Cloud. | The team runs on AWS and wants Amazon OpenSearch Service, Apache 2.0 terms or a fully open security stack. |
|---|
| What changes in the application? | Little. Query parsers and SolrJ stay. Solr 10 needs Java 21, SolrJ 10 needs Java 17, and the cluster connection string moves away from raw ZooKeeper hosts. | Every request is rewritten: Solr's query parameters and JSON Facet API become the Query DSL and aggregations, and SolrJ is replaced by an Elasticsearch client. | The same rewrite into the Query DSL and aggregations, with an OpenSearch client library. |
|---|
| What happens to the schema and analysis? | The schema and solrconfig.xml are reviewed against what Solr 10 removed. A change to index-time analysis needs a reindex. | Fields become index mappings and each analysis chain is rebuilt. The Lucene core is shared, so much of the tuning carries over in principle, and what does not is found by testing. | The same: mappings rebuilt, analysis chains rebuilt and tested against real queries. |
|---|
| How is the data moved? | A rolling upgrade from 8 to 9 starts at 8.7 or newer. An index more than one major version old must be reindexed, so 8 to 10 means a new collection behind an alias. | Reindex from the source of truth, or run both engines side by side with dual writes. Nothing is copied across as files. | The same: reindex from the source of truth, or dual-write during a parallel run. |
|---|
| How is the cluster run? | SolrCloud with a ZooKeeper ensemble, or user-managed mode, which has no built-in failover. Solr 10 can run without the Overseer, and that choice cannot be changed in a rolling upgrade. | Built-in cluster coordination with no separate ensemble. Shard sizing and allocation become the main operational problem. | Built-in cluster coordination, self-managed or on Amazon OpenSearch Service, where you cannot log in to the node. |
|---|
| When is it the wrong choice? | When nobody on the team wants to own Solr, or the roadmap needs features that live in the other engines. | When the only reason is that Solr is old. An upgrade to Solr 10 is smaller than a rewrite of every query. | When the reason is cost alone and the rewrite and the parallel run have not been costed. |
|---|
| What does AceMQ add? | A written upgrade path rehearsed on a copy, then 24/7 cover with a 15-minute emergency response. | A query and facet inventory, a gap list and a parallel-run plan, then support through the Elasticsearch page. | The same inventory and plan, then support through the OpenSearch page. |
|---|