Skip to main content

Integrate Sitecore With OPENSOLR


Here goes the story...
Personally when I looked up on the internet I did not find lot of documents which could tell how you can integrate Sitecore with OPENSOLR cloud provider, So I did hands on to it, Talked to their support and successfully integrated our sitecore to create indexes in cloud, Following are the highlights and troubleshooting points that I faced and how you can avoid it.
Quick "How-to" integration points

  • Register on https://opensolr.com/users/login
  • From Dashboard hover over "My Indexes" and select "Add New"

  • Select GEO location server where you want to put index

  • One important thing here is, OPENSOLR does not allow indexes with default keyword "sitecore_", so you will not be able to create those indexes, but to create them, you will need to use following configuration in those config files

  • <index id="sitecore_master_index" type="Sitecore.ContentSearch.SolrProvider.SolrSearchIndex, 
    Sitecore.ContentSearch.SolrProvider">
                <param desc="name">$(id)</param>
               <param desc="core">mysitecore_master_index</param>
    

  • I have shown the content of Sitecore_ContentSearch_Solr_Index_Master.config file and as you can see my index name is same but I have provided the "CORE" name so that it does not contain "sitecore_" keyword, You will need to use this name to create indexes in OPENSOLR.
  • On prompt of create index supply index name, NOTE: If you have specified CORE in search index config, name you give here must match with the CORE name of index and if no CORE is specified in search config, It should match with the index name, Default Sitecore index config will have CORE specified and custom indexes might not.
  • Click on "gear icon (settings icon)" on created index to go to index settings page
  • Click "UPLOAD CONFIG FILES" tab
  • Upload SCHEMA.zip first and after that upload SolrSchema.zip NOTE: Here we need to ask support to provide these files and upload order must match.
  • Do step 2-7 for all other indexes
  • Change ContentSearch.Solr.ServiceBaseAddress URL value in Sitecore.ContentSearch.Solr.DefaultConfiguration.config file pointing to the OPEN SOLR cloud URL (you can get that URL by clicking "Admin Panel" button on each of INDEXes settings page (Step-5)

  • Restart IIS and Open sitecoreintsance/Sitecore
  • From Sitecore launchpad->Control panel->Populate Solr Managed Schema
  • Rebuid index from Sitecore launchpad->Control panel->Indexing manager
  • If everything goes well and if you are able to generate schema and rebuild indexes, you can verify the same by going into "Admin Panel" of any index settings and you can see your SOLR user interface and observe that new documents are created as it will show document count.

Major errors and issues
Personally I faced two major issues,
  • Getting 400 bad requests with different field errors, like unknown field_indexName or unknown field "version_im" or Document is missing mandatory uniquekey field: id
  • Managed-schema.xml of my current on-prem sitecore "conf" did not work at all, which is the known issue in SOLR and Sitecore, Refer to the url https://kb.sitecore.net/articles/227897

Solution
  • Very first thing is you need to make sure is that your SOLR schema, contents of the "conf" folders are corrected, you will need to make sure that there are no "managed-schema.xml" file but rename it to "schema.xml" file, From SOLR 6+, There are no schema.xml files available but only Managed-Schema.xml is there, but that needs to be renamed.
  • Make sure you are referring to correct "conf" of SOLR version, My life saver was OPENSOLR support guy, He provided me two files Schema.xml and SolrSchema.xml (zip files), and uploading those files to my index configuration worked like a charm, So you may want to contact OPENSOLR chat support or via email to talk about this issues, They will see the logs on their end to find out what is the actual issue.
  • Make sure upload order of those two files are followed, first upload schema.xml and later on upload SolrSchema.xml (zip)

I hope this would be helpful for people to get started and integrate with OPENSOLR, Cheers !!!

Comments

Popular posts from this blog

Sitecore - How to show a new marketing promotional page on the same URL as existing home page

Hi Team, Today i will share one of the solution that we did for one of our customer, I am sure you will or you already might have came across such requirements and found your self in multiple option/solutions and trying to find best suited one for your customer, here is the story and solutions we thought of and finally selecting one out of it which was the best in all scenarios Also the solution was required in time sensitive deadline before their social marketing campaign begins so we had to come up with the solution and implement and go live before it. Customer Requirement They were doing a brand refresh, so whole site supposed to be revamped, With new user interface and UX, but that is a longer route, by the time we create that fully new site for them, they wanted to have a teaser home page, or a new home page to be shown just to give the visitor a feel of what is coming and they can market it using social campaigns. So their need was, Whenever users visit a website (www.blahblah.co...

An error occurred while receiving the HTTP response to This could be due to the service endpoint binding not using the HTTP protocol. This could also be due to an HTTP request context being aborted by the server (possibly due to the service shutting down). See server logs for more details.

You have noticed many times that everything was working fine and suddenly the below error starts coming and you find no way to work it out An error occurred while receiving the HTTP response to This could be due to the service endpoint binding not using the HTTP protocol. This could also be due to an HTTP request context being aborted by the server (possibly due to the service shutting down). See server logs for more details. The reason for this is the receiving size of WCF service is smaller then the data which is coming from service It was working before because it was small,So you will have to try to increase the receiving setting in your end point,Possible settings can be following maxStringContentLength="2147483647" maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" maxArrayLength="2147483647" That would definately help you!!!

Sitecore JSS - Error: `redirect` can not be returned from getStaticProps during prerendering

Hi Team, Recently in one of my project, I faced situation where we had getStaticProps complaining that it is not able to prerender some items and those paths were failing to build the app. so scenario was everything was working fine and build was working, but then there were redirect items added to sitecore content tree and form that day onwards "npm run build" started failing out of the blue with following errors First it was hard for me to wrap my head around it because, our Sitecore tree had different redirect items created from standard JSS redirect templates, so those redirect item were old URLs and in the field "redirectURL" we had the new page's path selected, because they are items just like any other items, I was expecting GetStaticProps to work, but build time only it was failing our NextJS getStaticProps looked like below  Basically, NextJS code in GetStaticProps meant following  1) GetStaticProps should prerender all the pages at build time 2) If it...