Vítejte na blog.vyvojar.cz Přihlásit | Registrovat | Pomoc
Titulní Blogy Fotky Soubory

Mazinův blog o SharePointu

Konfigurace vyhledávání v SharePointu - 1. část

Úvod

Toto je 1. díl minisérie o vyhledávání v SharePointu. Než se pustíme dál, chtěl bych jen upozornit, že se budu věnovat fulltextovému vyhledávání a ne prostému filtrování obsahu seznamů.

Mimochodem, je zvláštní, že webparty umožňující pokročilejší filtrování dat v seznamech a knihovnách dokumentů, jsou až v Enterprise verzi MOSSu. Tím pokročilejší myslím něco víc, než umí i WSS, tedy omezení výběrem hodnoty v záhlaví sloupce. Nevím, jestli pánům v Redmontu to připadalo jako Enterpise funkce, mě to připadá jako to nejzákladnější. Takže pokud se nechcete před zákazníky cítit trapně, až jim budete vysvětlovat, že ano SharePoint fitrovat data umí, ale že je to bude stát Enterprise licenci a Enterprise CALy, musíte se spolehnout na komponenty 3. stran, nebo na svou tvořivost.

Ale zpět k fulltextovému vyhledávání.

Fulltextové vyhledávání v SharePointu má tři fáze, jako ostatně většina podobných vyhledávání:

  1. Nejprve se projdou definované zdroje dat. Smyslem této fáze je pořídit kopie datových zdrojů pro další zpracování. V podstatě tato fáze má 2 módy:
    1. úplné - dojde ke smazání (pokud už existují) stávajících informací a ke kompletnímu projití zadaných zdrojů dat. Náročné, ale důkladné, proto se provádí méně často (např. při výrazné změně struktury nebo obsahu zdroje dat).
    2. přírůstkové procházení - soustředí se na aktualizaci již nalezených dat, podmínkou je alespoň jedno úspěšné úplné projití. Je rychlejší, ale něco může přehlédnout. Provádí se častěji než úplné procházení. Cílem je zajistit aktuálnost výsledků hledání
  2. Nalezená data se zpracují a uloží se do formy, ve které je možné snadno a rychle hledat, vytváří se tzv. index.
  3. Při zadání vyhledávacího dotazu je provedeno hledání nad předzpracovanými daty z kroku 2. Díky tomu je sice možné dotaz vyhodnotit rychle, ale hrozí riziko, že jsou vrácena neaktuální data. Nalezená data jsou pak zpracována do uživatelsky přívětivé podoby.

WSS vs. MOSS

Celý další popis se týká prakticky jen MOSSu, protože na WSS nic z toho nenajdete. Pokud jsou oblasti, kde WSS a MOSS se moc neliší, tak v podpoře vyhledávání jsou to nebe a dudy. Ve WSS můžete v Administračním webu pouze:

  1. určit pod jakým účtem poběží vyhledávací job
  2. pod jakým účtem bude procházen web (tedy)
  3. jak často bude probíhat procházení webu

 

Globální nastavení

Začíná v nastavení Sdílených služeb, protože právě ony jsou v MOSSu zodpovědné za procházení a indexaci datových zdrojů (ale i za mnoho dalších věcí, kterým se ale dnes věnovat nebudu). Nastavení se provádí na administračním webu a dají se zde nastavit následující věci:

Procházení:

  1. Zdroje dat - tedy to, co se má procházet. Může jít o weby SharePointu, jiné weby, sdílené disky, veřejné složky Exchange a data z Bussiness Data Catalogu (MOSS Enterprise)
  2. Plány procházení - to znamená, kdy a jak často se datové zdroje mají procházet, aby se nalezly nové informace, nebo aby se zjistily změny
  3. Pravidla procházení - ze zadaných zdrojů lze, s pomocí hvězdičkové konvence, vyjmou některé adresy. Např. testovací weby apod. Stejně tak ale lze říci, že některé adresy se mají procházet pod jiným účtem atd.
  4. Účet, v jehož kontextu se má procházení provádět. Velmi důležité místo při hledání odpovědi na otázku: Proč při hledání uživatelé nevidí záznamy, které jsou na procházených webech, a ke kterým mají přístup? Odpovědí totiž často bývá: Ano uživatelé k informacím přístup mají, ale ne účet indexovací služby.
  5. Typy souborů - určují se přípony souborů, které mají být při procházení analyzovány.

Dále se definuje, jak se mají nalezené informace zpracovávat:

  1. Směrodatné stránky - dá se stanovit, že informace pocházející ze zadaných adres mají větší váhu než ostatní. Stejně tak se dají určit adresy naopak s méně hodnotnými informacemi.
  2. Obory - data nalezená během procházení se dají sdružovat do oborů. Příslušnost k nějakému oboru je dána pomocí pravidel. Pravidla pracují s vlastnostmi nalezených dat, jejich zdrojem a URL adresou. Standardně je vytvořen obor Osoby, který zahrnuje všechny nalezené informace typu osoba. Pomocí pravidel také můžete informaci z oboru vyřadit.
  3. Vlastnosti metadat - zde se provádí mapování vlastností indexovaných dat (tzv. procházené vlastnosti, vlastnosti záznamů a dokumentů, které SharePoint při procházení datových zdrojů najde) na tzv. spravované vlastnosti (vlastnosti propagované a použitelné při zadávání dotazu a zpracování výsledků hledání). Funguje to následovně:
    1. vytvoříte seznam A a v něm sloupec B
    2. Při procházení na to SharePoint přijde a vytvoří novou procházenou vlastnost. Vlastnosti se snaží členit do kategorií.
    3. Můžete vytvořit spravovanou vlastnost, nazvat ji B, propojit ji s vlastností z předchozího bodu. Nejtěžší je najít vlastnost, která vás zajímá, mezi těmi stovkami až tisící procházených vlastností. Odměnou vám ale bude, že se spravovanými vlastnostmi se dají dělat ve vyhledávání užitečné kejkle. Např. ji můžete použít při definici oboru. Blíže se na spravované vlastnosti podíváme v dalším díle o vyhledávání.
  4. Mapování serverů - toto se používá v situacích, kdy vyhledávací služba používá k procházení jiné URL adresy (např. lokální), než budou používat uživatelé
  5. Odebrání výsledků hledání - zde můžete stanovit, že určité URL adresy mají být z výsledků odstraněny - vnitřně to funguje tak, že se vytvoří pravidlo procházení (viz. výše) a zadané adresy se ani neprochází.

 

Kromě administračního webu, kde se definují globální vlastnosti vyhledávání, mohou výsledky vyhledávání ovlivnit i správci jednotlivých kolekcí webů, webů a i "správci" jednotlivých seznamů.

Na úrovni kolekce webů:

  1. Zapnout podporu Centra vyhledávání. Můžete vytvořit speciální web pro vyhledávání (šablona Centrum vyhledávání). Na tomto webu se pak dá hodně ovlivnit, co uživatel může hledat a jak se mu prezentují výsledky. Této problematice se budu věnovat v dalším díle. V tomto nastavení určujeme, které centrum hledání dané kolekce webů vyřizovat (můžete jich mít ve farmě samozřejmě více) a zobrazovat výsledky.
  2. Vlastní obory - rozšiřuje množinu globálně definovaných oborů hledání. Obory se projeví jako možnost omezit hledání na stránce Rozšířeného hledání, nebo na stránce hledání v Centru vyhledávání
  3. Klíčová slova - lze definovat tzv. aliasy. To znamená, že pokud uživatel zadá např. cesťák, najdou se všechny záznamy, které obsahují frázi cestovní příkaz. Také lze definovat nejvhodnější dokumenty (angl. best bet). To jsou dokumenty, které se mají zobrazit jako první ve výsledcích při hledání daného výrazu. Dá se omezit i časová platnost klíčových slov.

Na úrovni webu se mohou definovat:

  1. jestli má být daný web zahrnutý do hledání
  2. jestli se mají indexovat pouze data v seznamech, nebo i publikované APSX stránky (to může být bezpečnostní problém, pokud stránka nekorektně hlídá práva)
  3. sloupce, které se nemají prohledávat - např. proto, že obsahují citlivé informace. V tomto nastavení můžete ovlivnit pouze sloupce definované na úrovni webu. Nemůžete tak ovlivnit sloupce definované přímo v seznamech (knihovnách dokumentů)
  4. tzv. související odkazy - to vytvoří další obor hledání nazvaný "Související weby" a umožňuje to správcům webů definovat vazby mezi weby. Vlastně to dává šanci uživateli hledat informaci na daném webu, a pokud nic nenajde, nebo toho najde méně než by čekal, může zkusit právě obor "Související weby".

Na úrovni jednotlivých seznamů:

  1. zda má být seznam zahrnut do výsledků vyhledávání
  2. nastavení práv ovlivňuje samozřejmě taky vyhledávání, protože před zobrazením výsledků se ověřuje, zda má hledající uživatel k nalezeným záznamům práva. Nastavením, resp. odejmutím práv účtu, pod kterým probíhá procházení zdrojů dat (viz. výše), můžete zamezit indexaci jednotlivých záznamů v seznamu

iFiltry

Dalším způsobem, jak ovlivnit výsledky vyhledávání, je použití iFiltrů. Jedná se o moduly, které umožňují prohledávacímu stroji zpracovat nejen vlastnosti dokumentů jako je jméno, ale i obsah. Standardně obsahuje SharePoint iFiltery pro MS formáty jako jsou Word, Excel, PowerPoint a podobně.

Pokud chcete naučit váš SharePoint indexovat i nějaký "exotický" formát, např. PDF Smile, pak musíte:

  1. obstarat si a nainstalovat příslušný iFilter na server ve farmě, který má roli vyhledávacího serveru
  2. přidat příponu typu souboru, který iFilter zpracovává mezi typy souborů, které bude SharePoint indexovat. To uděláte v konfiguraci vyhledávání na administračním webu.
  3. určit ikony, kterou má SharePoint zobrazovat u souborů s danou příponou, jinak bude zobrazovat nicneříkající univerzální ikonu. To uděláte takto:
    1. obrázek (např. jpeg nebo png, ideálně o velikosti 16x16px) nahrajete do adresáře např. C:\Program Files\Common FIles\Microsoft Shared\Web Server extensions\12\TEMPLATE\IMAGES
    2. do souboru DOCICON.XML v adresáři C:\Program Files\Common FIles\Microsoft Shared\Web Server extensions\12\TEMPLATE\XML přidáte mapování obrázku na příponu. Například tedy: <Mapping Key=”pdf” Value=”pdficon_small.gif” OpenControl=”"/>
  4. spustíte úplné procházení, aby se zindexovaly už uložené soubory, jež podporuje nainstalovaný iFilter.

Práva

Ještě bych se chtěl zastavit u práv. Výsledky hledání jsou samozřejmě ovlivněny právy. A to hned dvakrát. Nejprve jsou to práva účtu, který je použitý při procházení. Pak to jsou práva uživatele, který provádí hledání. Dá se zkrátka říct, že má-li být schopen uživatel informaci najít. Musí k ní mít práva on i účet, který prochází datové zdroje.

Taky bych chtěl v souvislosti s právy zmínit jednu věc. Protože SharePoint neumožňuje nastavit práva na jednotlivé sloupce seznamů, řeší se to často úpravou New, Display a Edit dialogů seznamů. S tím ovšem souvisí jedno nebezpečí. Jestliže si nedáte pozor a příslušný seznam neoznačíte, že se nemá indexovat, může se stát to, že citlivý údaj se objeví ve výsledcích vyhledávání! Dokonce ani vyřazení příslušného sloupce (za předpokladu že sloupec je definovaný na úrovni webu) z indexování nepomůže. Problém je v tom, jak SharePoint ukládá záznamy do databáze a jak funguje vyhledávání:

  1. Záznamy jsou v databázi uloženy ve formě XML a takto jsou i zpracovány při indexaci obsahu
  2. SharePoint standardně ve výsledcích hledání u jednotlivých záznamů zobrazuje i okolí hledané informace

Kombinací těchto dvou skutečností se může stát následující situace:

Existuje např. seznam zaměstnanců se sloupci Jméno, příjmení, plat a funkce. Plat je tajný a údaje z tohoto sloupce může vidět pouze personální manažer. Proto vývojáři upravili New, Display a Edit dialogy. Jenže pak přijde uživatel a do vyhledávacího pole zadá funkci některého zaměstnance. SharePoint ho najde a ve výsledcích zobrazí nalezený záznam: jeho nadpis, cestu k němu a už zmiňované okolí nalezené hodnoty, v našem případě funkce, kterou navíc zvýrazní. Protože hodnota platu je v XML záznamu uložena hned vedle hledané hodnoty funkce, dozví se uživatel i to, co by asi neměl. Když ale klikne na odkaz, aby se dozvěděl více, zobrazí se upravený display dialog, zafunguje jeho logika a vše je OK.

 

Závěr

Uff, snad jsem na něco nezapoměl. Probrali jsme jen část z toho, co můžete v SharePointu nastavit ohledně vyhledávání. Většina věcí, o kterých jsem se dnes zmínil, se týká toho, co a jak SharePoint indexuje. Tedy toho, co získá ze zdrojů dat a co se tudíž může objevit ve výsledcích. V příštím díle se podíváme na to, jak rozšířit možnosti hledání pro uživatele, tak aby mohl co nejlépe určit, co hledá. Taky se podíváme na to, jak ovlivnit formu, jakou jsou mu podány výsledky hledání.

Zveřejněno Monday, April 05, 2010 8:10 PM by mazin

Komentář

 

Skull napsal:

Očekává se druhá část?

Konkrétně by mě zásadně zajímalo použití klíčových slov. S instalací MSS2010 v lokalizované verzi klíčová slova nefungují. Nevyhledávají se, nelze je použít. Toť moje zkušenost. Máte jinou?

February 20, 2011 1:56 PM
Neregistrovaní uživatele nemužou přidávat komentáře.

Syndication

News

  • Web Developer
  • Enterprise Application Developer

  • Microsoft Office SharePoint Server 2007, Application Development
  • Microsoft Windows SharePoint Services 3.0, Application Development
  • Microsoft Office SharePoint Server 2007, Configuration
  • Microsoft Windows SharePoint Services 3.0, Configuration
  • .Net Framework 2.0, Distributed Applications
  • .Net Framework 2.0, Web Applications
  • .Net Framework 2.0, Windows Applications
Powered by Community Server (Personal Edition), by Telligent Systems