10

I am trying to configure Solr for Sitecore 8.2. Solr is running and I have cores set up for each index and secondary cores set up for rebuilding. I'm not using the Solr support package.

I am getting the following error when trying to browse the site:

Could not create instance of type: Sitecore.ContentSearch.SolrProvider.SwitchOnRebuildSolrSearchIndex. No matching constructor was found.

I'm guessing, it's a configuration problem. However, I can't get to showconfig.aspx to see what the issue might be.

Below is the patch config for the indexes:

<indexes>
  <index id="sitecore_core_index" type="Sitecore.ContentSearch.SolrProvider.SolrSearchIndex, Sitecore.ContentSearch.SolrProvider">
    <patch:attribute name="type" value="Sitecore.ContentSearch.SolrProvider.SwitchOnRebuildSolrSearchIndex, Sitecore.ContentSearch.SolrProvider"/>
    <param desc="core">SitecoreSandbox_core</param>
    <param patch:after="*[@desc='core']" desc="rebuildcore">SitecoreSandbox_core_2</param>
  </index>
  <index id="sitecore_master_index" type="Sitecore.ContentSearch.SolrProvider.SolrSearchIndex, Sitecore.ContentSearch.SolrProvider">
    <patch:attribute name="type" value="Sitecore.ContentSearch.SolrProvider.SwitchOnRebuildSolrSearchIndex, Sitecore.ContentSearch.SolrProvider"/>
    <param desc="core">SitecoreSandbox_master</param>
    <param patch:after="*[@desc='core']" desc="rebuildcore">SitecoreSandbox_master_2</param>
  </index>
  <index id="sitecore_web_index" type="Sitecore.ContentSearch.SolrProvider.SolrSearchIndex, Sitecore.ContentSearch.SolrProvider">
    <patch:attribute name="type" value="Sitecore.ContentSearch.SolrProvider.SwitchOnRebuildSolrSearchIndex, Sitecore.ContentSearch.SolrProvider"/>
    <param desc="core">SitecoreSandbox_web</param>
    <param patch:after="*[@desc='core']" desc="rebuildcore">SitecoreSandbox_web_2</param>
  </index>
  <index id="sitecore_marketing_asset_index_master" type="Sitecore.ContentSearch.SolrProvider.SolrSearchIndex, Sitecore.ContentSearch.SolrProvider">
    <patch:attribute name="type" value="Sitecore.ContentSearch.SolrProvider.SwitchOnRebuildSolrSearchIndex, Sitecore.ContentSearch.SolrProvider"/>
    <param desc="core">SitecoreSandbox_marketing_asset_master</param>
    <param patch:after="*[@desc='core']" desc="rebuildcore">SitecoreSandbox_marketing_asset_master_2</param>
  </index>
  <index id="sitecore_marketing_asset_index_web" type="Sitecore.ContentSearch.SolrProvider.SolrSearchIndex, Sitecore.ContentSearch.SolrProvider">
    <patch:attribute name="type" value="Sitecore.ContentSearch.SolrProvider.SwitchOnRebuildSolrSearchIndex, Sitecore.ContentSearch.SolrProvider"/>
    <param desc="core">SitecoreSandbox_marketing_asset_web</param>
    <param patch:after="*[@desc='core']" desc="rebuildcore">SitecoreSandbox_marketing_asset_web_2</param>
  </index>
  <index id="sitecore_marketingdefinitions_master" type="Sitecore.ContentSearch.SolrProvider.SolrSearchIndex, Sitecore.ContentSearch.SolrProvider">
    <patch:attribute name="type" value="Sitecore.ContentSearch.SolrProvider.SwitchOnRebuildSolrSearchIndex, Sitecore.ContentSearch.SolrProvider"/>
    <param desc="core">SitecoreSandbox_sitecore_marketingdefinitions_master</param>
    <param patch:after="*[@desc='core']" desc="rebuildcore">SitecoreSandbox_sitecore_marketingdefinitions_master_2</param>
  </index>
  <index id="sitecore_marketingdefinitions_web" type="Sitecore.ContentSearch.SolrProvider.SolrSearchIndex, Sitecore.ContentSearch.SolrProvider">
    <patch:attribute name="type" value="Sitecore.ContentSearch.SolrProvider.SwitchOnRebuildSolrSearchIndex, Sitecore.ContentSearch.SolrProvider"/>
    <param desc="core">SitecoreSandbox_sitecore_marketingdefinitions_web</param>
    <param patch:after="*[@desc='core']" desc="rebuildcore">SitecoreSandbox_sitecore_marketingdefinitions_web_2</param>
  </index>
  <index id="sitecore_testing_index" type="Sitecore.ContentSearch.SolrProvider.SolrSearchIndex, Sitecore.ContentSearch.SolrProvider">
    <patch:attribute name="type" value="Sitecore.ContentSearch.SolrProvider.SwitchOnRebuildSolrSearchIndex, Sitecore.ContentSearch.SolrProvider"/>
    <param desc="core">SitecoreSandbox_testing</param>
    <param patch:after="*[@desc='core']" desc="rebuildcore">SitecoreSandbox_testing_2</param>
  </index>
  <index id="sitecore_suggested_test_index" type="Sitecore.ContentSearch.SolrProvider.SolrSearchIndex, Sitecore.ContentSearch.SolrProvider">
    <patch:attribute name="type" value="Sitecore.ContentSearch.SolrProvider.SwitchOnRebuildSolrSearchIndex, Sitecore.ContentSearch.SolrProvider"/>
    <param desc="core">SitecoreSandbox_suggested_test</param>
    <param patch:after="*[@desc='core']" desc="rebuildcore">SitecoreSandbox_suggested_test_2</param>
  </index>
  <index id="sitecore_fxm_master_index" type="Sitecore.ContentSearch.SolrProvider.SolrSearchIndex, Sitecore.ContentSearch.SolrProvider">
    <patch:attribute name="type" value="Sitecore.ContentSearch.SolrProvider.SwitchOnRebuildSolrSearchIndex, Sitecore.ContentSearch.SolrProvider"/>
    <param desc="core">SitecoreSandbox_fxm_master</param>
    <param patch:after="*[@desc='core']" desc="rebuildcore">SitecoreSandbox_fxm_master_2</param>
  </index>
  <index id="sitecore_fxm_web_index" type="Sitecore.ContentSearch.SolrProvider.SolrSearchIndex, Sitecore.ContentSearch.SolrProvider">
    <patch:attribute name="type" value="Sitecore.ContentSearch.SolrProvider.SwitchOnRebuildSolrSearchIndex, Sitecore.ContentSearch.SolrProvider"/>
    <param desc="core">SitecoreSandbox_fxm_web</param>
    <param patch:after="*[@desc='core']" desc="rebuildcore">SitecoreSandbox_fxm_web_2</param>
  </index>
  <index id="sitecore_list_index" type="Sitecore.ContentSearch.SolrProvider.SolrSearchIndex, Sitecore.ContentSearch.SolrProvider">
    <patch:attribute name="type" value="Sitecore.ContentSearch.SolrProvider.SwitchOnRebuildSolrSearchIndex, Sitecore.ContentSearch.SolrProvider"/>
    <param desc="core">SitecoreSandbox_list</param>
    <param patch:after="*[@desc='core']" desc="rebuildcore">SitecoreSandbox_list_2</param>
  </index>
  <index id="social_messages_master" type="Sitecore.ContentSearch.SolrProvider.SolrSearchIndex, Sitecore.ContentSearch.SolrProvider">
    <patch:attribute name="type" value="Sitecore.ContentSearch.SolrProvider.SwitchOnRebuildSolrSearchIndex, Sitecore.ContentSearch.SolrProvider"/>
    <param desc="core">SitecoreSandbox_social_messages_master</param>
    <param patch:after="*[@desc='core']" desc="rebuildcore">SitecoreSandbox_social_messages_master_2</param>
  </index>
  <index id="social_messages_web" type="Sitecore.ContentSearch.SolrProvider.SolrSearchIndex, Sitecore.ContentSearch.SolrProvider">
    <patch:attribute name="type" value="Sitecore.ContentSearch.SolrProvider.SwitchOnRebuildSolrSearchIndex, Sitecore.ContentSearch.SolrProvider"/>
    <param desc="core">SitecoreSandbox_social_messages_web</param>
    <param patch:after="*[@desc='core']" desc="rebuildcore">SitecoreSandbox_social_messages_web_2</param>
  </index>
</indexes>
  • Thanks to all. I have tried the below configuration to rebuild my index. No errors .It worked as expected. Please remove the Patch after and refer my configuration in comments. – Raghav Jun 20 '17 at 15:51
9

I had exactly the same issue as you and for me it was a really small change to the patching that fixed it:

Instead of:

<index id="sitecore_core_index" type="Sitecore.ContentSearch.SolrProvider.SolrSearchIndex, Sitecore.ContentSearch.SolrProvider">
    <patch:attribute name="type" value="Sitecore.ContentSearch.SolrProvider.SwitchOnRebuildSolrSearchIndex, Sitecore.ContentSearch.SolrProvider"/>
    <param desc="core">SitecoreSandbox_core</param>
    <param patch:after="*[@desc='core']" desc="rebuildcore">SitecoreSandbox_core_2</param>
</index>

Do this:

<index id="sitecore_core_index">
    <patch:attribute name="type" value="Sitecore.ContentSearch.SolrProvider.SwitchOnRebuildSolrSearchIndex, Sitecore.ContentSearch.SolrProvider"/>
    <param desc="core">SitecoreSandbox_core</param>
    <param patch:after="*[@desc='core']" desc="rebuildcore">SitecoreSandbox_core_2</param>
</index>

notice that in the first line <index id=..... I removed the type attribute. Its a strange thing, but that fixed it when I tried.

  • 1
    that's weird, the config in question works fine for me in 8.1 and 8.2 with or without the "type". – Pete Navarra Oct 3 '16 at 21:30
  • unfortunately that did not fix it. I must have something else going on. – Geoff Warren Oct 3 '16 at 21:34
6

It turns out there were 2 issues I was having:

  1. Because I was customizing the core names I needed to include a node for sitecore_analytics_index. Based on this blog post I had left the node out thinking it wasn't needed.
  2. Patch config order. My include file was getting patched too soon so the correct core names were not getting used.
  • Fixing the patch config order fixed it for me. <param desc="rebuildcore" patch:after="param[@desc='core']">$(id)_rebuild</param> – Ben Rabidou Sep 7 '17 at 16:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.