In the previous Alfresco article we looked at Solr, why it is included in Alfresco, how it is integrated with Alfresco etc..
Out of box when we install Alfresco it has Solr engine available. So, in the development environment we need not to do anything related to setup of Solr but when deployed in a production environment it is best to configure Solr like below.
Main two possible setups are as follow.
Alfresco and Solr on Same Server
Out of box Alfresco comes up with dedicated Solr installed within it so you need not to do much of the configuration to use it.
- Configuration efforts are reduced
- Indexing and searching will be faster as communication between solr and alfresco will be easier when both are on same server. (Note: We are not considering case where we can have separate solr cluster for keeping indexes because it could be much more faster)
- Not advisable in production because scaling up of searching only will be difficult
- Configuration of Alfresco clustered environment will be difficult as database has to keep track of each of nodes separated index store.
Alfresco and Solr Different Server
It is advisable to keep Solr server separate from Alfresco instance in production setup if you want to use its advance features and customize its default behavior.
- Biggest advantage of keeping Solr server independent is that it can be used to index content from many different enterprise resources in the organization, giving the users a one stop shop to go for all searches.
- Clustering of multiple solr servers becomes easier especially useful in case of Hugh index stores.
- In a production environment you would want to separate Solr to run on its own server in its own Apache Tomcat application server.
- Searching can be scaled up independently of authoring and publishing of content and other artifacts.
- Clustering of Alfresco instances also becomes easier as dedicated search server or search cluster can be shared among instances rather than having separate index on each node and tracking of indexes from node to database
- More configuration and setup efforts required
- Network bandwidth will add overhead if they are on different machines.