Search Driven Sharepoint – Custom sorting van zoekresultaten

Het CoreResultsWebPart in Sharepoint 2010 is een rijke feature. Out-of-the-box kan het onwijs veel, biedt het veel configuratiemodelijkheden en kan het de meeste scenario’s zonder problemen aan. Maar, het CoreResultsWebPart is bedoeld voor traditionele zoekimplementaties. Zodra je meer “search driven” oplossingen gaat implementeren, loop je snel tegen de beperkingen aan. In dit blog belicht ik één van de vele aspecten van search driven oplossingen: de noodzaak tot custom sorting.

Wat? Waarom?

Sharepoint search geeft je weinig opties tot het sorteren van je zoekresultaten. Vanuit de gedachte dat het zoekresultaten zijn en je dus de meest relevante opties bovenaan wilt hebben, is dit natuurlijk prima. Maar wat doe je als je het nieuws uit alle sites in je sitecollecties wilt tonen, relevantie wordt dan opeens publicatiedatum. Wat doe je als je een productsuggestiefunctie voor een webshop bouwt? Dan is relevantie een stuk complexer dan tekstuele overeenkomsten en wil je zelfs direct invloed kunnen uitoefenen op de resultaten. Dit is het topje van de ijsberg met betrekking tot search driven applicaties en in dit blog licht ik een simpel voorbeeld toe van hoe je dit voor elkaar kunt krijgen in Sharepoint 2010.

Allereerst: FAST

FAST Search kan dit soort operaties (en meer) OOB. Het grootste voordeel van FAST werkt helaas in het nadeel.  FAST is een beest van een applicatie en dat leidt tot een behoorlijke footprint, licentiekosten, expertise en consultancy en stevige hardware vereisten. Dat maakt FAST niet geschikt voor alle implementaties, het is al snel een kanon om een mug dood te schieten.

Dus je kunt niet altijd FAST inzetten, maar wilt wel beschikken over custom sorting

Dat kan! Maar het kost wel wat werk. Het CoreResultsWebPart is niet sealed. Door een webpart te maken dat overerft uit CoreResultWebPart heb je de mogelijkheid om het gedrag van je zoekapplicatie te beïnvloeden. In dit specifieke geval overriden we de DataSourceView voor de resultaten. Dit doen we in 3 stappen: eerst maken we een overriding class voor CoreResultsWebPart en specificeren we een nieuwe DataSource.

public class CustomSortedResultsWebPart : CoreResultsWebPart {

   protected override void CreateChildControls() {
      base.CreateChildControls();
   }

   // override the DataSource to allow overriding the DataSourceView
   protected override void CreateDataSource() {
      this.DataSource = new CustomSortedResultsDataSource(this);
   }
}

Vervolgens geven we in deze custom DataSource aan dat we een custom CoreResultsDatasourceView willen gebruiken.

public class CustomSortedResultsDataSource : CoreResultsDatasource {
   public CustomSortedResultsDataSource(CoreResultsWebPart ParentWebpart) : base(ParentWebpart) {
         //create the View that will be used with this datasource
         this.View = new CustomSortedResultsDataSourceView(this,"CustomSortedResults");
      }
}

En tot slot geven overriden we in de custom CoreResultsDatasourceView de AddSortOrder om onze eigen sorteren te tonen.

public class CustomSortedResultsDataSourceView : CoreResultsDatasourceView {

     public CustomSortedResultsDataSourceView(SearchResultsBaseDatasource DataSourceOwner, string ViewName) : base(DataSourceOwner, ViewName) {
         //make sure we have a value for the datasource
         if (DataSourceOwner == null) {
             throw new ArgumentNullException("DataSourceOwner");
         }

         //get a typed reference to our datasource
         CustomSortedResultsDataSource ds = this.DataSourceOwner as CustomSortedResultsDataSource;

         //configure the query manager for this View
         this.QueryManager = SharedQueryManager.GetInstance(ds.ParentWebpart.Page).QueryManager;
     }

     // Add a custom Sort Order for the results
     public override void AddSortOrder(SharePointSearchRuntime runtime) {

         #region Ensure Runtime
         //make sure our runtime has been properly instantiated
         if (runtime.KeywordQueryObject == null) {
             return;
         }
         #endregion

         // use the following to get a handle to the CoreResultsWebPart, allowing this webpart to be configurable though properties etc
         //CustomSortedResultsWebPart webPart = DataSourceOwner.ParentWebpart as CustomSortedResultsWebPart ;

         // remove any other sorted fields we might have had to ensure our custom sort
         runtime.KeywordQueryObject.SortList.Clear();

         // configure the sort list with sort field and direction
         runtime.KeywordQueryObject.SortList.Add("MyCustomField", SortDirection.Ascending);
     }
 }
Reageren Lees verder
Frans Sharepoint Developer

Office 365 lancering

Op woensdagmiddag 28 juni 2011 om 16:00 uur Nederlandse tijd is Office 365 uit de bèta fase gekomen. Hiermee is Office 365 nu officieel beschikbaar voor de wereld.  Office 365 is de online productiviteitsdienst van Microsoft en de opvolger van BPOS (Business Productivity Suite Online). Concreet komt het er op neer dat bekende Microsoft producten als Exchange, Office, SharePoint en Lync samen als online dienst beschikbaar zijn voor klanten. Het geeft je zo via je browser toegang tot mail, gebruik van Word, Excel, PowerPoint en OneNote, omgevingen waar je kunt samenwerken en document beheren, chatten en video meeting. Afhankelijk van de licentiekeuze worden de verschillende producten en functionaliteiten beschikbaar:

1. Een versie tot 25 gebruikers
Met de versie tot 25 gebruikers heb je toegang Exchange, SharePoint en Lync (met enkele beperkingen) en tot Office Web Apps, de online versie van de Office Suite (Excel, Word, PowerPoint en OneNote) voor een prijs van € 5,25 per gebruiker, per maand.

2. Een versie voor meer dan 25 werknemers
Met de grote versie zijn er verschillende mogelijkheden om het basispakket uit te breiden met onder meer met integratie met telefoniediensten en het gebruik van Office Professional Plus. Voor dat laatste geldt overigens niet dat de volledige suite in de cloud beschikbaar is, maar je koopt het recht om het lokaal te installeren. Deze Office 365 versie varieert van € 9,00 tot € 25,50.

De individuele producten zijn tenslotte ook individueel af te nemen, maar dat is prijstechnisch minder aantrekkelijk dan de keuze voor een gebundelde versie.

De eerste case, meteen succesvol

Mixit is benoemd tot Cloud Accelerate Partner van Microsoft en heeft daarmee alle kennis en expertise in huis om organisaties te helpen bij hun stap naar de cloud met Office 365. Met de bèta versie van Office 365 hebben we inmiddels al een project gedaan samen met Mojo concerts.

Mojo Concerts verzocht Mixit om een extranet te realiseren specifiek voor het Lowlands festival. Dit extranet heeft Mixit gerealiseerd op Office 365 (SharePoint Online). Op dit extranet delen de twee organiserende partijen, Mojo Concerts en LOC7000, informatie en communiceren met elkaar. Ruim 50 medewerkers van beide organisaties hebben daarmee toegang tot de meest recente versies van plattegronden, programmawijzigingen, agenda en informatie over EHBO, rookbeleid en Arboregels. Ook is altijd direct helder welke medewerker op welk moment beschikbaar is, welke medewerkers bedrijfshulpverlener zijn en hoe ze te bereiken zijn. Op de startpagina is een dashboard ingericht waarop in één oogopslag de laatste wijzigingen en de actuele weerberichten te zien zijn.

Reageren Lees verder
Dirk Adviseur proces en informatie

Tam Tam en Agile Software lanceren Mixit

PERSBERICHT

Samenwerken in een omgeving waar mens, organisatie en techniek samenkomen

Mixit levert:

  • Realisatie en implementatie van portals en intranetten
  • Integratie cloud en lokaal (on-premise) toepassingen
  • Advies over de inzet  van cloud computing
  • Migratie van data en content – mailmigratie
  • Implementatie door advies, begeleiding en opleiding
  • Beheer en ondersteuning van de oplossingen
  • Licenties
Reageren Lees verder
Jean Pierre

Tam Tam/Mixit en Hutspot winnen Dutch Interactive Award met sociaal intranet met Google Apps

Dutch Interactive AwardsOp 12 mei zijn in Amsterdam de Dutch Interactive Awards uitgereikt. Tam Tam/Mixit sleepte de felbegeerde award in de wacht in de categorie ‘Best intranet’, met een sociaal intranet voor adviesbureau Hutspot. Volgens de jury is het een verfrissende aanpak om niet bij aanvang te beslissen alles te bouwen wat mogelijk is, maar om gaande het project te beoordelen wat nodig is. Tam Tam/Mixit realiseerde een sociaal intranet dat tools als Google Apps for Business, WordPress en Flickr met elkaar verbindt, met één samenhangende gebruikerservaring. Bjørn van Raaij, verantwoordelijk voor het winnende concept: “Dit is een fantastische bevestiging dat een mash-up van tools uit de cloud voor organisaties én medewerkers een heel goede oplossing is.”

Reageren Lees verder
admin

Stel de intranetgebruiker centraal, maar neem als staf zelf de leiding

Ruim 600 mensen, voornamelijk vanuit communicatie en ICT, verzamelden zich in Media Plaza voor het congres Intranet 2011 om te spreken over onderwerpen als sociaal intranet, governance, cloud, Google Apps, Yammer, mobiel en apps. Wat waren de 5 belangrijkste lessen van de dag?

Reageren Lees verder
Remco

Het virtuele werken: tips om over te gaan op werken in de cloud

Je hebt gekozen voor de voordelen die de cloud biedt om je organisatie te ondersteunen. Waar moet je dan allemaal aan denken? In een vorig artikel is collega Elsa van Bruggen ingegaan op redenen waarom je zou kiezen voor ondersteuning van je organisatie vanuit de cloud en de mindshift die daarvoor nodig is. In dit artikel zet ik een aantal tips over het werken in de cloud op een rijtje.

Reageren Lees verder
Suzanne Adviseur

Nieuwsbrief

WE WON WINNING!!!