Nechte search popisovat svoje dokumenty
- Posted by Jana Babáčková
- On 10.3.2015
- 0
Představte si , že je pondělí ráno a právě jste přišli do práce s hlavou plnou plánů na další pracovní týden. Vracíte se z kuchyňky s čerstvě uvařenou kávou, pouštíte počítač a otevíráte svou e-mailovou schránku. Pokračujeme. Přeskakujete prvních pár zpráv, protože je to stejně jen SPAM co přišel ve dvě ráno se špatně přeloženou češtinou, upijete trochu z té kávy, co jste si položili na stůl a pak to přijde… Link na projektovou dokumentaci, který jste rozeslali v pátek těsně před půlnoci (= takže ještě v termínu) nikomu nefunguje, soubory k projektu nejdou najít a šéf je vytočený úplně do běla, protože má právě u sebe zákazníka na důležitém obchodním jednání, ke kterému nemá podklady.
Jiný příklad.
Představte si, že Vám konzultant nebo partnerská IT společnost právě předali úplně nový intranetový portál. Nikdy před tím jste žádný neměli a je úplně prázdný, ale alespoň uživatele už jste stačili proškolit, ať ví do čeho jdou. Každé oddělení tedy dostane zdánlivě neškodný a jednoduchý úkol, který zní: Přesuňte všechny své pracovní dokumenty na SharePoint. A máte na to třeba týden… Jenže co se s takovým zadáním stane? Každý vezme všechno co má, bez ladu a skladu, protože nemá čas to probírat a nahraje to do několika přidělených knihoven na portále. Bez popisků, bez metadat, bez verzování (a občas i bez práv, poznámka redakce). Prostě tak, jak to leželo na souborovém serveru doteď. Jak takový soubor po někom najdete? Viz obrázek níže.
Těžko. Můžete mít stokrát vyřešené verzování, funkční „search“ a soubor na správném místě, ale co poznáte z názvu H122015 (nebo ještě lépe H122015-2) bez metadat?
Takže, co byste dali za to, kdyby SharePoint uměl popisovat dokumenty za Vás?
On to totiž umí. Abychom byli přesnější, „search“ to umí. Funkce, o které tu cheme psát, se jmenuje „Custom entity extraction“ (CEE) a není to nic nového – kdo měl tu možnost vyzkoušet si FAST Search Server pro SharePoint 2010, ten už asi ví o co jde. CEE umí projít obsah dokumentů uvnitř portálu (během klasického hledání) a porovnat jejich obsah podle předem daného klíče (slovníku, .csv souboru s výrazy). Pokud se nějaké ze slov nebo frází shoduje s klíčem, výsledek zapíše do „managed properties“, aniž byste měli jakákoliv metadata vyplněná v sloupcích předem. Jedno přírůstkové hledání a Vaše soubory jsou na světě. Jak na to?
K tomu, aby Vám fungovalo všechno co teď popíšu, potřebujete SharePoint 2013 Enterprise, funkční a nastavenou „search“ službu, nějaký zdroj obsahu, dostatečná práva a jeden .csv soubor sloužící jako slovník (nebo externí reference). Než se pustíme do nastavování, které zabere tak 20 minut včetně indexování, je potřeba si promyslet dvě základní věci: 1. způsob extrakce a 2. podobu slovníku, co vlastně chcete hledat.
1. Jaký způsob extrakce chci použít
Word Extraction – přesně zadaný výraz, velká a malá písmena však nehrají roli
Příklad: pro výraz „ilike“ se najde výsledek „iLike“ nebo „ILIKE“
Slovník: Microsoft.UserDictionaries.EntityExtraction.Custom.Word.n (n může být 1 – 5)
Word Part Extraction – přesně zadaný a přibližně odpovídající výraz, velká a malá písmena nehrají roli
Příklad: pro výraz „ilike“ se najde výsledek „iLike“, „ILIKE“, ale i „iLikeSPCZ“ nebo „iLike SP“
Slovník: Microsoft.UserDictionaries.EntityExtraction.Custom.WordPart.n (n může být 1 – 5)
Word Exact Extraction – přesně zadaný výraz, na velikosti písmen záleží
Příklad: pro výraz „ilike“ se najde výsledek „iLike“
Slovník: Microsoft.UserDictionaries.EntityExtraction.Custom.ExactWord.1
Word Part Exact Extraction – přesně zadaný a přibližně odpovídající výraz, na velikosti písmen záleží
Příklad: pro výraz „ilike“ se najde výsledek „ilike“ nebo „ilike SP“
Slovník: Microsoft.UserDictionaries.EntityExtraction.Custom.ExactWordPart.1
2. Jak bude vypadat slovník, kterým chci plnit „managed properties“.
Slovník je .csv soubor s dvěma sloupci oddělenými čárkami formátu UTF-8. První sloupec je „Key“, hodnota, kterou hledáme a druhý „Display form“, výsledek, který vrátíme.
Přiložený obrázek mi říká: pokud najdeš v textu dokumentu slovo „printer“, naplň mojí „managed property“ pro výraz „Cost Center 20“. Stejně tak se Vám pak také bude zobrazovat položka v levém „refinement“ panelu hledací stránky, pro filtrování výsledků.
Použít můžete cokoliv, co potřebujete: nákladové středisko, zkratky používané ve firmě, produkty, adresy dodavatelů nebo druhy dokumentů obecně. Cokoliv, u čeho jste schopní nadefinovat souborový slovník.
Tak, teď už jen zbývá říci SharePointu, že někde u Vás na disku existuje externí zdroj dat pro hledání, který chcete použít. Rozmyslete si způsob extrakce (v mém případě Word Part), uložte si cestu k .csv souboru v její UNC podobě (\\server\cesta\soubor.cxv), otevřete příkazový řádek a potvrďte následující dva příkazy:
$searchApp = Get-SPEnterpriseSearchServiceApplication
Import-SPEnterpriseSearchCustomExtractionDictionary –SearchApplication $searchApp –Filename \\server\c$\folder\soubor.csv –DictionaryName Microsoft.UserDictionaries.EntityExtraction.Custom.WordPart.1
Pokud jste byli úspěšní, objeví se zpráva při pokusu o zpracování souboru „Dictionary import in progress“ a na konci celé operace „Dictionary imported successfully“. Pokud se nedostanete k té první, zkontrolujte formát a jazykovou sadu svého souboru (comma separated UTF-8) a UNC cestu k souboru, jestli je pro server dostupná. Pokud se dostanete přes první část, ale něco při zpracování se pokazí, dostanete jen hlášku „Failed to import custom dictionary file“ a tady je hledání příšiny trošku těžší. Mohou to být přístupová práva nebo způsob jakým spouštíte script nebo server, ze kterého to zkoušíte nemá parametr „PrimaryHostController“ pro „Search“ nastaveny na „True“ (příkaz Get-SPEnterpriseSearchHostcontroller).
Předpokládejme, že se nám import povedl, jdeme dál. Otevřete Centrální Správu, najděte servisní aplikaci pro „search“ a v menu po levé straně zvolte odkaz pojmenovaný „Search schema“.
Naše CEE pracuje s obsahem dokumentu, hledáme tedy výraz „body“ a upravíme jeho vlastnosti. Někde v dolní polovině formuláře najdete sekci s názvem „Custom entity extraction“ a u ní několik zaškrtávacích polí s druhem extrakce (naším slovníkem). Já použila Word Part s číslem 1, vyplním tedy šestý čtvereček ze shora. Pokud jste použili o něco přesnější Word s pořadovým číslem dva, bude to pro Vás druhý čtvereček. Ale použít můžete všechny – Word & Word Part mají až pět slovníků, Word Exact & Word Part Exact každý po jednom.
Spusťte „Full crawl“ pro váš zdroj dat a chvilku počkejte. Dalším krokem je úprava levého „refinement“ panelu, kde se budou naše hesla objevovat, abychom podle nich mohli filtrovat. Otevřete si „search centrum“ stránku pro editaci, vyberte „refinement“ web part a zobrazte jeho vlastnosti.
Z panelu vlastností po pravé straně obrazovky klikněte na tlačítko „Choose Refiners“ a hned ta první část formuláře, co se zobrazí, je pro nás zajímvá:
Najděte svůj slovník a přiřaďte ho z leva do prava pomocí tlačítka „Add“. Upravte si pořadí. Pokud už máte zindexováno, v sekci „Sample values“ se dokonce zobrazí počet aktuálně zjištěných hodnot = to je dobrý trik i pro jiné filtry, ne jen pro teď, pro CEE.
Zbytek polí upravte podle potřeby. Nastavte si „Display name“, jméno sekce, způsob řazení (pokud ho potřebujete) nebo maximální počet zobrazených položek (doporučuji tak 5, až zůstane panel přehledný) a změny uložte. Na konci stránky je také „Preview“ tlačítko, pokud si chcete změny prohlédnout ještě před uložením… A máme hotovo.
Pozor, CEE Vám nedokáže nahradit klasické popisování dokumentů, protože zpracovaná data nevrací zpátky do sloupců k dokumentům, ale schovává si je pouze pro „search“. Určitě to nějak jde, zvlášť proto, že obráceně tento postup funguje, nicméně v době zveřejnění tohoto článku zatím nevíme jak, ale pracujeme na tom. I bez toho však pro mě CEE zůstává jednou z nejvychytanějších funkcí SharePointu 2013, která Vám s bojem s dokumenty opravdu může pomoci.
Co Vy na to?
0 comments on Nechte search popisovat svoje dokumenty