Ú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í:
- 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:
- ú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).
- 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í
- Nalezená data se zpracují a uloží se do formy, ve které je možné snadno a rychle hledat, vytváří se tzv. index.
- 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:
- určit pod jakým účtem poběží vyhledávací job
- pod jakým účtem bude procházen web (tedy)
- 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í:
- 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)
- 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
- 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.
- Úč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.
- 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:
- 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.
- 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.
- 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ě:
- vytvoříte seznam A a v něm sloupec B
- Při procházení na to SharePoint přijde a vytvoří novou procházenou vlastnost. Vlastnosti se snaží členit do kategorií.
- 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í.
- 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é
- 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ů:
- 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.
- 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í
- 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:
- jestli má být daný web zahrnutý do hledání
- 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)
- 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ů)
- 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ů:
- zda má být seznam zahrnut do výsledků vyhledávání
- 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
, pak musíte:
- obstarat si a nainstalovat příslušný iFilter na server ve farmě, který má roli vyhledávacího serveru
- 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.
- 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:
- 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
- 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=”"/>
- 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í:
- Záznamy jsou v databázi uloženy ve formě XML a takto jsou i zpracovány při indexaci obsahu
- 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í.