4

I have read every post on here and every post I can find on this subject on google and I've tried all the tips / suggestions, but no joy.

I'm attempting to setup a SOLR 6.6.0 with multiple cores / Sitecore 8.2 (initial release) on my local Windows 10 box.

I've battled my way through every install guide, post I can find, and finally have gotten it to a point where it looks like it's almost working, however I can't get the content editor to be loaded.

Here's my error message, when I try to open the content editor.

Value cannot be null

As previously mentioned, I've checked and tried all the Q's on here (made sure all my Lucene config files are disabled, tried out different IOC's (unity and windsor, currently on unity), swapped out different DLL's in the bin folder (from SOLR Sitecore package and nuget package I built), edited config files till I'm blue in the face, poured over the Sitecore scaling guide and nothing.

Here's my SPLR root directory (where you can see my cores folder) for reference

directory structure

UPDATE: Based on some comments below, I have started over going back to SOLR 5.3 which is according to the compatibility guide, compatible with Sitecore 8.2, but i am still having no luck getting the content editor to load. :(

I'm including my stack trace as text as suggested.

    [ArgumentNullException: Value cannot be null.
    Parameter name: fieldNameTranslator]
       Sitecore.ContentSearch.Linq.Solr.SolrIndexParameters..ctor(IIndexValueFormatter valueFormatter, IFieldQueryTranslatorMap`1 fieldQueryTranslators, FieldNameTranslator fieldNameTranslator, IExecutionContext[] executionContexts, IFieldMapReaders fieldMap, Boolean convertQueryDatesToUtc) +315
       Sitecore.ContentSearch.SolrProvider.LinqToSolrIndex`1..ctor(SolrSearchContext context, IExecutionContext[] executionContexts) +188
       Sitecore.ContentSearch.SolrProvider.SolrSearchContext.GetQueryable(IExecutionContext[] executionContexts) +268
       Sitecore.Social.Search.SearchProvider.SearchItems(Expression`1 whereExpression, Func`2 selector) +165
       Sitecore.Social.Search.SearchProvider.GetMessagesByContainer(String container) +503
       Sitecore.Social.MessageBusinessManager.SearchMessagesByContainer(String container) +203
       Sitecore.Social.MessageBusinessManager.GetMessagesCount(String container) +16
       Sitecore.Social.Client.MessagePosting.Commands.SocialCenter.RunGetHeader(CommandContext context, String header) +342
       Sitecore.Web.UI.WebControls.Ribbons.Ribbon.FillParamsFromCommand(CommandContext commandContext, RibbonCommandParams ribbonCommandParams) +94
       Sitecore.Web.UI.WebControls.Ribbons.Ribbon.GetCommandParameters(Item controlItem, CommandContext commandContext) +79
       Sitecore.Web.UI.WebControls.Ribbons.Ribbon.RenderLargeButton(HtmlTextWriter output, Item button, CommandContext commandContext) +78
       Sitecore.Web.UI.WebControls.Ribbons.Ribbon.RenderButton(HtmlTextWriter output, Item button, CommandContext commandContext) +440
       Sitecore.Web.UI.WebControls.Ribbons.Ribbon.RenderChunk(HtmlTextWriter output, Item chunk, CommandContext commandContext) +343
       Sitecore.Web.UI.WebControls.Ribbons.Ribbon.RenderChunk(HtmlTextWriter output, Item chunk, CommandContext commandContext, Boolean isContextual, String id) +244
       Sitecore.Web.UI.WebControls.Ribbons.Ribbon.RenderChunk(HtmlTextWriter output, Item chunk, CommandContext commandContext, Boolean isContextual) +161
       Sitecore.Web.UI.WebControls.Ribbons.Ribbon.RenderChunks(HtmlTextWriter output, Item strip, CommandContext commandContext, Boolean isContextual) +449
       Sitecore.Web.UI.WebControls.Ribbons.Ribbon.RenderStrips(HtmlTextWriter output, Item ribbon, Boolean isContextual, ListString visibleStripList) +1807
       Sitecore.Web.UI.WebControls.Ribbons.Ribbon.RenderStrips(HtmlTextWriter output, Item defaultRibbon, Item contextualRibbon, ListString visibleStripList) +162
       Sitecore.Web.UI.WebControls.Ribbons.Ribbon.Render(HtmlTextWriter output) +800
       System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +80
       Sitecore.Web.HtmlUtil.RenderControl(Control ctl) +80
       Sitecore.Shell.Applications.ContentManager.ContentEditorForm.UpdateRibbon(Item folder, Boolean isCurrentItemChanged, Boolean showEditor) +502
       Sitecore.Shell.Applications.ContentManager.ContentEditorForm.Update() +600
       Sitecore.Shell.Applications.ContentManager.ContentEditorForm.OnPreRendered(EventArgs e) +172

    [TargetInvocationException: Exception has been thrown by the target of an invocation.]
       System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) +0
       System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) +128
       System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) +146
       Sitecore.Reflection.ReflectionUtil.InvokeMethod(MethodInfo method, Object[] parameters, Object obj) +89
       Sitecore.Shell.Applications.ContentManager.ContentEditorPage.OnPreRender(EventArgs e) +143
       System.Web.UI.Control.PreRenderRecursiveInternal() +110
       System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2994

If anyone has any other suggestions, I'd love to hear them, as I'm kinda at my wits end trying to figure this out.

Thanks!

3
  • Make sure Solr 6 is compatible with sitecore 8.2
    – TamerM
    Jan 6, 2018 at 4:55
  • Please include the stack trace as quoted text. Your question title doesn't help - the search engines need something to find this question by. Jan 7, 2018 at 21:59
  • Did something change in the global.asax or dependency injection that you are using?
    – Gabbar
    Jan 14, 2018 at 15:32

3 Answers 3

3

Solr 6.6 is not compatibile with Sitecore 8.2 . Recommended SOLR version for Sitecore 8.2 is 5.3 . More informations you can find at : https://kb.sitecore.net/articles/227897

enter image description here

8
  • I've seen that chart, so I hear what you're saying, but I've seen not one but two blog posts where people are using solr 6.6 and SC 8.2 and they get it to work just fine.However I'm totally fine going back to 5.5 to get it working.
    – Nick
    Jan 8, 2018 at 16:00
  • blog.alpha-solutions.us/2016/10/…
    – Nick
    Jan 8, 2018 at 16:01
  • You asked about Sitecore 6.6 and not Sitecore 6.2 Jan 8, 2018 at 16:35
  • Well I attempted to start over with solr 5.3 and I'm still having no luck. The first thing that seems strange to me is that I have to rename all of the id's in the config files in the zzzSolrIndexes directory to include a 2 at the end, otherwise I get a "can't load [insert index name here] as it's already been loaded error"
    – Nick
    Jan 8, 2018 at 19:06
0

I am pretty sure the issue you are having is that you do not have your cores created correctly. You should have approximately 12 cores in your solr directory. I don't see any of the Sitecore index cores listed in your screen shot.

You will need a collection of cores:

  • sitecore_web_index
  • sitecore_master_index
  • sitecore_core_index
  • sitecore_analytics_index

To name a few.

Make sure that your cores are correct.

3
  • Hi Pete, you could be correct, creating the cores has always been a bit tricky for me. I just counted and in my cores conf folder, I have 15 directories for all of the sitecore cores. they are as follows:
    – Nick
    Jan 8, 2018 at 16:10
  • "C:\solr-6.6.0\server\solr\cores_conf\sitecore_analytics_index" "C:\solr-6.6.0\server\solr\cores_conf\sitecore_core_index" "C:\solr-6.6.0\server\solr\cores_conf\sitecore_fxm_master_index" "C:\solr-6.6.0\server\solr\cores_conf\sitecore_fxm_web_index" "C:\solr-6.6.0\server\solr\cores_conf\sitecore_list_index" "C:\solr-6.6.0\server\solr\cores_conf\sitecore_marketing_asset_index_master" "C:\solr-6.6.0\server\solr\cores_conf\sitecore_marketing_asset_index_web" "C:\solr-6.6.0\server\solr\cores_conf
    – Nick
    Jan 8, 2018 at 16:11
  • \sitecore_marketingdefinitions_master" "C:\solr-6.6.0\server\solr\cores_conf\sitecore_marketingdefinitions_web" "C:\solr-6.6.0\server\solr\cores_conf\sitecore_master_index" "C:\solr-6.6.0\server\solr\cores_conf\sitecore_suggested_test_index" "C:\solr-6.6.0\server\solr\cores_conf\sitecore_testing_index" "C:\solr-6.6.0\server\solr\cores_conf\sitecore_web_index" "C:\solr-6.6.0\server\solr\cores_conf\social_messages_master" "C:\solr-6.6.0\server\solr\cores_conf\social_messages_web"
    – Nick
    Jan 8, 2018 at 16:11
0

Just be sure, can you validate the java memory you are allocating for your solr instance ? I had similar issues, where I fixed it by allocating more java memory. You can easily do it by adding this line in this file path\to\your\solrInstance\solr-6.6.0\bin\solr.in.cmd :

set SOLR_JAVA_MEM=-Xms2g -Xmx2g

I am using 2g in local, but 4 in production environment. See this thread.

Also, not sure how you installed solr, but you could use this script and make sure it is properly installed.

For the cores, if they are properly created, can you make sure you can build your indexes with the index manager in sitecore ?

For the Lucene vs Solr config files, you can use this script as well :

function Get-ConfigFileFilter([string]$providerName)
{
    return "^.*\." + $providerName + "\.(.+\.)?config.*$"
}

function Set-SCSearchProvider
{
    $rootPath = Read-Host "What is the path of your Sitecore instance's website folder?";
    $choice = Read-Host "(L)ucene or (S)olr?";


    $validInput = $true;
    #test that path is valid
    If (!(Test-Path -Path $rootPath))
    {
        Write-Host "The supplied path was invalid or inaccessible." -ForegroundColor Red;
        $validInput = $false;
    }
    #test that choice is valid
    ElseIf (($choice -ne "L") -and ($choice -ne "S"))
    {
        Write-Host "You must choose L or S." -ForegroundColor Red;
        $validInput = $false;
    }
    

    If ($validInput)
    {
        If (($choice -eq "L"))
        {
            Write-Host "Set to Lucene." -ForegroundColor Yellow;
            $selectedProvider = "Lucene";
            $deselectedProvider = "Solr";
        }
        ElseIf (($choice -eq "S"))
        {
            Write-Host "Set to Solr." -ForegroundColor Yellow;
            $selectedProvider = "Solr";
            $deselectedProvider = "Lucene";
        }

        #enumerate all config files to be enabled        
        $regexp = Get-ConfigFileFilter $selectedProvider
        $filesToEnable = Get-ChildItem -Recurse -File -Path $rootPath | Where-Object { $_.FullName -match $regexp }
        foreach ($file in $filesToEnable)
        {
            Write-Host $file.Name;
            if (($file.Extension -ne ".config"))
            {
                $dirName=[System.IO.Path]::GetDirectoryName($file.FullName)
                $newFileName = [io.path]::GetFileNameWithoutExtension($file.FullName);
                $destination = $dirName + "\" + $newFileName
                #$newFile = Rename-Item -Path $file.FullName -NewName $newFileName -PassThru;
                $newFile = Move-Item -Path $file.FullName -Destination $destination -Force

                Write-Host "-> " $destination -ForegroundColor Green;
            }
        }

        #enumerate all config files to be disabled
        $regexp = Get-ConfigFileFilter $deselectedProvider
        $filesToDisable = Get-ChildItem -Recurse -File -Path $rootPath | Where-Object { $_.FullName -match $regexp }
        foreach ($file in $filesToDisable)
        {
            Write-Host $file.Name;
            if ($file.Extension -eq ".config")
            {
                $dirName=[System.IO.Path]::GetDirectoryName($file.FullName)
                $newFileName = $file.Name + ".disabled";
                $destination = $dirName + "\" + $newFileName
                #$newFile = Rename-Item -Path $file.FullName -NewName $newFileName -PassThru;
                $newFile = Move-Item -Path $file.FullName -Destination $destination  -Force
                Write-Host "-> " $destination -ForegroundColor Green;
            }
        }
    }
}

Set-SCSearchProvider

Save it as whatever.ps1

When running this script, it will ask for the /website path and then you get to choose either Solr or Lucene. It will disable all Lucene file and enable all Solr file when Solr is chosen.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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