UnifiedSearch FilterForVisitor in EPiServer 6?

Vote:
 

Hi,

We're using UnifiedSearch in a EPiServer 6 R2 project with PageTypeBuilder. By default Find doesn't filter the hits by access rights and so on, in EPiServer 7 it does though.

I've reflected the EPiServer.Find.Cms assembly for EPi 7 and ported the filters and it seems to work. But I would like to have my outgoing JSON confirmed, so here it is: http://i.imgur.com/nC1Opmv.png.


And I also would like to know what the difference is between AlwaysApplyFilter and PublicSearchFilter? My guess is PublicSearchFilter appends filters to the request and AlwaysApplyFilter just when the objects are indexed?

#65316
Jan 25, 2013 22:24
Vote:
 

Oh by the way, this is how I register the filters:

SearchClient.Instance.Conventions.UnifiedSearchRegistry.Add<MetaDataPageTypeBase>().PublicSearchFilter(c => c.BuildFilter<MetaDataPageTypeBase>().ExcludePageInSearch<MetaDataPageTypeBase>());

SearchClient.Instance.Conventions.UnifiedSearchRegistry.Add<PageData>().PublicSearchFilter(c => c.BuildFilter<PageData>().FilterForVisitor<PageData>());

SearchClient.Instance.Conventions.UnifiedSearchRegistry.Add<UnifiedFile>().PublicSearchFilter(c => c.BuildFilter<UnifiedFile>().FilterOnUnifiedFileReadAccess());

    

#65318
Jan 25, 2013 22:28
Vote:
 

Hey,

When you do GetResult using unified search you can specify a number of settings. One of those is wether to filter for public search/display. It's true by default if I don't recall wrong. If true, it applies filters registered using PublicSearchFilter, otherwise not.

#65327
Jan 26, 2013 12:08
Vote:
 

Thanks Joel. And filterForPublicSearch is true by default.

But what about the the JSON, is anything missing and/or is plain wrong? It seems right to me.

#65328
Jan 26, 2013 12:22
Vote:
 

Well, it's kind of hard to say from just looking at the JSON but I *think* it generally looks good.

There may be an edge case where a page is in the waste basket but IsDeleted isn't true. I can't recall if that's actually the case and if so when that happens, but I believe you'd have to do some fairly funky stuff for that to happen.

One thing I noticed was that there's a language branch filter that seems to be ORed with a filter for publication status and publish dates. I may be wrong, but I would guess that it should be ANDed instead.

#65329
Jan 26, 2013 12:56
Vote:
 

I guess I have to fire up an EPi7 website and compare the filters.

#65330
Jan 26, 2013 13:11
Vote:
 

I have compared the two now and according to me they should not be ANDed. If I do I get no results at all.

You really need a regex brain to read this sort of things.

#65353
Jan 28, 2013 9:58
Vote:
 

Yeah. Integration tests tend to come in handy :)

#65355
Jan 28, 2013 10:01
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.