Magnus Rahl
Feb 21, 2011
  3711
(1 votes)

Search Service problem for users with many groups

The new EPiServer Full Text Search is fully integrated into the RelatePlus package. All content created is added to the search index, including the content’s access rights. That means access control filtering can be done by the indexing service before returning search result. Very convenient for paging of results etc. when you know you can display all the results returned.

Unexpected limitations

Suddenly some of our users didn’t get any search results back. Digging in the log showed several errors and after repeating the queries I could see that they returned 404 not found even though other queries worked perfectly.

After further troubleshooting it was evident that it was the length of the query (which is passed to the REST service in the query string) that was the culprit. Since the user’s groups are passed to the indexing service, a user with many groups performing a search will result in a very long query string.

Since, at least in the RelatePlus standard templates, users are added to a new group for each Club they join the query can grow large very fast.  If you have built your community based on the RelatePlus templates you could have users who are unable to perform searches.

Solution

ASP.NET has a setting for the maximum allowed length of the QueryString (note that this is a server to server call, so no browsers are involved, but they also have limitations). This is set in the configuration / system.webServer / security / requestFiltering / requestLimits elements in the maxQueryString attribute. There is also a maxUrl attribute but they are independent (maxUrl is everything up to the query, but not including it). De default value for maxQueryString if it is not set is 2048, which was the limit my users’ queries hit. I simply increased this value like so:

<system.webServer>
  <security>
    <requestFiltering>
      <requestLimits maxQueryString="16384" />
    </requestFiltering>
  </security>
</system.webServer>
Feb 21, 2011

Comments

Nov 23, 2011 05:38 PM

And if you are running ASP.NET 4 you also need to set the new maxQueryStringLength on the httpRuntime element.

Please login to comment.
Latest blogs
Opti ID overview

Opti ID allows you to log in once and switch between Optimizely products using Okta, Entra ID, or a local account. You can also manage all your use...

K Khan | Jul 26, 2024

Getting Started with Optimizely SaaS using Next.js Starter App - Extend a component - Part 3

This is the final part of our Optimizely SaaS CMS proof-of-concept (POC) blog series. In this post, we'll dive into extending a component within th...

Raghavendra Murthy | Jul 23, 2024 | Syndicated blog

Optimizely Graph – Faceting with Geta Categories

Overview As Optimizely Graph (and Content Cloud SaaS) makes its global debut, it is known that there are going to be some bugs and quirks. One of t...

Eric Markson | Jul 22, 2024 | Syndicated blog

Integration Bynder (DAM) with Optimizely

Bynder is a comprehensive digital asset management (DAM) platform that enables businesses to efficiently manage, store, organize, and share their...

Sanjay Kumar | Jul 22, 2024

Frontend Hosting for SaaS CMS Solutions

Introduction Now that CMS SaaS Core has gone into general availability, it is a good time to start discussing where to host the head. SaaS Core is...

Minesh Shah (Netcel) | Jul 20, 2024

Optimizely London Dev Meetup 11th July 2024

On 11th July 2024 in London Niteco and Netcel along with Optimizely ran the London Developer meetup. There was an great agenda of talks that we put...

Scott Reed | Jul 19, 2024