Anders Hattestad
Feb 18, 2016
visibility 4047
star star star star star star
(2 votes)

When EPiServer.Search's Score is zero

I got a problem with the search result using EPiServer.Search. The site is in Norwegian and is set to default langauge in site settings in admin.

But the result from the search always gave me 0 for result on the IndexResponseItem Score.
After some digging around I found this code

indexResponseItem.Score = (float.TryParse(RequestHandler.GetAttributeValue(current, SearchSettings.Config.SyndicationItemAttributeNameScore), out num2) ? num2 : 0f);

Beeing executed in RequestHandler.PopulateSearchResultsFromFeed
And since my current Culture will be set to "no" since the host sets it to that, the result from IndexService/IndexingService.svc will return results in "en" then I got problems

The quick solution is to change the current culture before one search and set it back after.

var section = ConfigurationManager.GetSection("system.web/globalization") as GlobalizationSection;
var oldCulture = Thread.CurrentThread.CurrentCulture;
if (section!=null )
{
    Thread.CurrentThread.CurrentCulture=CultureInfo.GetCultureInfo(section.UICulture);
}
var res= SearchHandler.Instance.GetSearchResults(groupQuery, 1, maxSize);
Thread.CurrentThread.CurrentCulture = oldCulture;
return res;

I Guess there are more correct ways of doing this, but a solution is better than none :)

Feb 18, 2016

Comments

error Please login to comment.
Latest blogs
Composition Over Inheritance: Why Your Content Contract Is Not a Base Class

Inside the structural conformance pattern in SaaS CMS — from server-side inheritance to pipeline governance. A contract in Optimizely SaaS CMS is...

Vipin Banka | Sep 19, 2026

Optimizely Opti ID Integration: Why the API Key Was Missing from the DXP Management Portal

While working on an Optimizely CMS 12 Opti ID integration recently, we ran into an issue that initially appeared to be related to SSO authenticatio...

Madhu | Sep 18, 2026 |

Extending a Contract: What You Can Override

Contracts share fields across content types — but not every field setting can be overridden. Push the same contract onto several components, and CM...

Chirag Khanna | Sep 18, 2026 |

Building a Blazor Server UI Inside the Optimizely CMS 13 Admin Shell

What I learned shipping a Blazor Server UI inside Optimizely CMS 13 — Razor components in a NuGet package, the Blazor hub next to MapContent(),...

Stanisław Szołkowski | Sep 17, 2026 |