Have you ever wished that standing up a Solr server for Sitecore was easy? I have. So I made a script to make it so.
The Solr Cannon automates the setup and configuration of Solr on Windows (Note: Linux may be a better production choice if you have the option), including installation as a background service, Sitecore schema installation, core creation, and generating a Sitecore config patch file that will point Sitecore at your shiny new Solr server and its cores.
- A copy of the Bitnami Solr Stack for Windows (I used 5.5.0-1)
- A copy of the script and the solr schema file (the schema was generated with Sitecore 8.1 Update 1, you might need to generate your own if it doesn’t work)
- PowerShell 3.0 or later
- Copy the Solr stack and scripts to a folder on the server that will run Solr
- Review the
Install Solr.ps1script to make sure the variables are to your liking (project name, ports, solr stack installer path, etc)
- Open an administrative PowerShell prompt
- Kick back for a couple minutes
- Bask in the glow of your new Solr server and all of its Sitecore cores
Ok ok, that’s not all you need to do in order to configure Solr and Sitecore.
- Check out Patrick Perrone’s post to help you swap in Solr as the search provider and configure the Solr IoC container. Note: I’d recommend Windsor for the IoC. Autofac and Ninject were less than awesome install experiences…
- Once you have the Sitecore configuration flipped to Solr, you can grab the
Solr.configfile that the Solr Cannon produced when it installed Solr (written to the script directory). This config patch will:
- Point Sitecore at your Solr server
- Make Sitecore look at the correct core names for each index
SwitchOnRebuildSolrIndexwhich allows you to rebuild indexes without any index downtime (great for production…or dev)
- Load up Sitecore, open the indexing manager, and rebuild all your indexes. With a bit of luck, you’ll be good to go!
Suppose you’re working on your own machine and you’ve got more than one dev site that’s using Solr. The Solr Cannon scripts can act to create a new config set and cores for several Sitecore installations on the same Solr server. Edit the script to have a different
$ProjectName set, run it again, and say no when asked if you need to install a Solr server. In this mode, the script will build out a config set and cores for a new Sitecore site, as well as the patch file.
Have fun :)