volume_up

A critical vulnerability was discovered in React Server Components (Next.js). Our systems remain protected but we advise to update packages to newest version. Learn More

volume_up

A critical vulnerability was discovered in React Server Components (Next.js). Our systems remain protected but we advise to update packages to newest version. Learn More

Question about Count in MultiSearch

Hello.

How can I send request of count in multisearch?

where, request of count = EPiServer.Find.SearchExtensions.Count()

           Multisearch = EPiServer.Find.IClient.MultiSearch

Any ideas?

Version EPiServer.Find = 8.9

Best Regards

#122089
May 26, 2015 15:29
Vote:

Hi,

You cannot use .Count() on individual searches in a multisearch request but you can do it on all searches using .Count() instead of .GetResult():

var results = service.MultiSearch<Article>()

                .Search<Article>(x => x.For("Banana"))

                .Search<Article>(x => x.For("Orange"))

                .Count();

I guess however that you want to do a count on just a some of the searches and to do this with minimal overhead you can use .Take(0) on that query and look at .TotalMatching in the result:

var results = service.MultiSearch<Article>()

                .Search<Article>(x => x.For("Banana"))

                .Search<Article>(x => x.For("Orange").Take(0))

                .GetResult();

results.ElementAt(1).TotalMatching

This will effectivly be a count query as it won't return any matching documents and only return the number of documents actually matching your query.

#122173
May 27, 2015 16:08

Thank you. It is very good answer.

Best Regards.

#122207
May 28, 2015 9:00
error This topic was created over six months ago and has been resolved. If you have a similar question, please create a new topic and refer to this one.
* You are NOT allowed to include any hyperlinks in the post because your account hasn't associated to your company. User profile should be updated.