2007-01-31 11:51 #0 av: Kaj

Har ni försökt att indexera enskilda fält i listor i Sharepoint 2003 och upptäckt att dessa inte indexeras? Denna artikel beskriver hur ni skall göra för att få detta att fungera.

Om man i SharePoint 2003 lägger upp egna listor t ex nyheter, åtgärder, ärenden mm och vill indexera upp enskilda fält så fungerar inte detta out-of-the-box i SharePoint 2003. Det går alltså inte att lägga till ett fält typ "ansvarig", "avdelning" etc och få dessa indexerade så de kan bli sökbara direkt i sökfunktionne i SharePoint. Om man gör samma sak i dokumentbibliotek och lägger till ett fält (metadata) så fungerar det men alltså inte på listor. Detta är by design från Microsoft och anledningen är följande.

SharePoint kommer alltid att hitta ditt fält och lägga in det i "Hantera egenskaper för indexerat innehåll" men kommer inte att lägga in några värden i dessa fält. Genom sökningen kan man då söka på fritext (men inte på enskilda fält i listan) i dessa listor och får då träff på själva listan att det finns en eller flera poster i listan som innehåller ditt sökvärde. Däremot kan man inte se exakt vilken post det är. För att göra det måste man konfigurera om indexet (se nedan) så att den även indexerar individuella listobjekt. Anledningen till att detta inte är satt som default är av prestanda. Listor kan ju tillsammans innehålla många tiotusentals och ibland även hundratusentals poster vilket skulle påverka prestandan och även antal träffar vid en sökning om man inte gör kvalificerad sökning.
Men det finns alltså en lösning som inte är helt enkel att förstå om man inte tar ovanstående i beaktning därför att Microsoft har spärrat funktionen i out-of-the-box lösningen som sätts vid installationen (pga av det jag skrev här ovan). Men det finns en lösning. Så här gör du.

Konfigurera om Indexets regler

Om du inte gjort en specialkonfigurering för var dina listor skall indexeras kommer dessa alltid att läggas i indexet Non_Portal_Content. Du måste då här gå in och konfigurera om så att individuella listobjekt skall indexeras. Som jag nämnde så är just de fälten gråmarkerade och går inte att kryssa i vilket är by-design. Du måste således ta bort denna regel på indexet och lägga upp den igen. Då kommer dessa fält att vara konfigurerbara så du kan bocka för dem.

Så här gör du

  1. Gå till SharePoints startsida
  2. Gå till webbplatsinställningar
  3. Under Sökinställningar och indexerat inehåll väljer du Konfigurera sökning och indexering
  4. Under Innehålls index väljer du det index du vill aktivera denna funktion för. Det är normalt Non_Portal_content
  5. Längst ner har du nu en länk som heter Hantera regler för att undanta och ta med innehåll. Klicka på den
  6. Här finns nu normalt tre regler där den sista heter något i stil med http://dinserver/* och står i läge Tas med. Om du klickar på den kommer du att se att fälten Tillåt aviseringar för enskilda SharePoint-listobjekt och Crawla enskilda SharePoint-listobjekt inte är förbockade och inte heller går att kryssa i då de är gråmarkerade.
    Skriv av de val som i övrigt finns på denna regel.
  7. Gå tillbaka till sidan med reglerna (där du hamnade i punkt 6) och högerklicka på regeln http://dinserver/* som har värdet Tas med och välj att ta bort denna regel.
  8. Skapa sedan en ny regel och ange i sökvägen samma som den regel du just tog bort (http://dinserver/*) samt lägg till övriga val som fanns med på regeln du just tog bort (se sista raden i punkt 6). Dessutom skall du nu bocka för Crawla enskilda SharePoint-listobjekt och om du även vill kunna skapa aviseringar på enskilda listobjekt fältet Tillåt aviseringar för enskilda SharePoint-listobjekt
    Denna regel måste ligga efter ev. Undantagna regler för samma adress för att komma med.
  9. Till slut skall du göra en omindexering med valet Starta fullständig uppdatering på detta index.
  10. När indexeringen är klar finns nu ditt/dina fält med och är sökbara. Du kan verifiera detta genom att gå till webbplatsinställningar och välja Hantera egenskaper för indexerat innehåll och söka upp schemat urn:schemas-microsoft-com:office:office
  11. Gå in under detta schema och leta upp din egenskap. Den skall heta ows_ochdittfältnamn. Där kan du nu se upp till fem stycken listobjekt som innehåller ett värde för ditt fält om allt är OK. Om du även vill att fältet skall dyka upp som val vid avancerad sökning (och det vill du troligen) så skall du bocka för valet Inkludera den här egenskapen i avancerade sökalternativ. Det krävs normalt att du gör en ny indexering (fullständig) innan detta val dyker upp under avancerade sökalternativ.

Som sagt, att du måste gå in och göra denna ändring finns inte dokumenterat av Microsoft så jag hoppas att denna artikel hjälpte lite.

Relaterade länkar

Av: Kaj

Datum för publicering

  • 2007-01-31