Kombinera ett filtrerat sökresultat med resultatet från indexservern?

Vote:
 
Vi har förändrat sökfunktionen så att vi filterar bort alla sidor som inte har egenskapen "Publicera externt" och värdet "True". Vi lade till följande kod i Search.aspx.cs precis före DataBind(); i PageLoad funktionen: EPiServer.Filters.FilterCompareTo filterCompareTo = new EPiServer.Filters.FilterCompareTo("PublishExternal", "True"); SearchResults.Filter += new EPiServer.WebControls.FilterEventHandler(filterCompareTo.Filter); Det funkar klockrent men problemet som uppstått är att vi då även filtrerar bort alla sökresultat från Indexservern, dvs alla dokument. Är det någon som har en bra ide hur vi ska lägga till sökresultatet från indexservern?
#12044
Mar 25, 2008 18:34
Vote:
 
Det ni kan göra är att skapa ett eget filter som filtrerar bort icke-önskade sidor, men lämnar kvar Indexserver-resultat. Indexserver-sidor är i själva verket virtuella sidor som skapas enbart för sökresultatet. Sidorna har inget ID dvs ni kan jämföra PageLink med PageReference.EmptyReference. Exempel: public void SearchFilter(object sender, FilterEventArgs e) { PageDataCollection pages = e.Pages; PageData pageData; for (int pageIndex = 0; pageIndex < pages.Count; pageIndex++) { pageData = pages[pageIndex]; if (pageData.PageLink != PageReference.EmptyReference && (pageData["PublishExternal"] == null || ((bool) pageData["PublishExternal"]) == false)) { pages.RemoveAt(pageIndex); pageIndex--; } } } private void Page_Load(object sender, System.EventArgs e) { // Filtrera med eget filter SearchResults.Filter += new FilterEventHandler(SearchFilter); DataBind(); }
#13573
Mar 25, 2008 18:42
Vote:
 
Tusen tack. Nöten att knäcka var "ni kan jämföra PageLink med PageReference.EmptyReference". MVH BnearIT AB
#13574
Mar 25, 2008 18:42
* 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.