Whichever way you migrate, the same facts decide how long it takes. Gather them first.
Whether you migrate yourself or hand it off to us, gather this first:
- Source core name. e.g.
my_core. - Current Solr version. Visit
https://YOUR-CLUSTER/solr/CORE/admin/system?wt=json— thelucene.solr-spec-versionfield tells you exactly. Or check the Info tab of the index. - Doc count.
/select?q=*:*&rows=0&wt=json→response.numFound. Drives how long YOUR reindex will take. - Source-of-truth confirmation. Where does the data come from? Database table, CMS API, crawler, ingestion API, file directory? Confirm it is reachable and complete BEFORE migration starts.
- Custom field types in
schema.xml. Anything beyond stock types — customsolr.TextFieldchains, ICU collations, custom tokenizers, BBoxField, ExternalFileField — needs an explicit conversion decision. - Custom request handlers in
solrconfig.xml. Custom/selectdefaults,/suggestsetups, custom spellcheck dictionaries, customrequestParsertweaks. - Stopwords / synonyms / protected words. Every additional
.txtfile referenced from the schema. - Application config locations. Where is the connection string?
settings.php,wp-config.php, environment variable, Helm value? Cutover speed depends on this being trivial to flip.
Concrete commands for inventory and snapshot:
# Inventory the indexes on your account curl -s "https://opensolr.com/solr_manager/api/get_index_list?email=YOU@EXAMPLE.COM&api_key=YOUR_API_KEY" # List, then download every configuration file of the affected index CORE=CORE_NAME; AUTH="email=YOU@EXAMPLE.COM&api_key=YOUR_API_KEY" mkdir -p conf-$CORE for f in $(curl -s "https://opensolr.com/solr_manager/api/get_all_config_files?$AUTH&core_name=$CORE" | python3 -c 'import json,sys; print("\n".join(json.loads(json.load(sys.stdin)["msg"])))'); do curl -s "https://opensolr.com/solr_manager/api/get_file?$AUTH&index_name=$CORE&file_name=${f%.*}&file_extension=${f##*.}" \ | python3 -c 'import json,sys; print(json.load(sys.stdin)["msg"])' > "conf-$CORE/$f" done # Take a backup snapshot of the OLD index (archive only - cannot be restored across major versions) curl -s "https://opensolr.com/solr_manager/api/create_backup?$AUTH&core_name=$CORE"
Solr migration
Checklist before you start (this page)