Tovek: Dotazovací jazyk



Podobné dokumenty
Tovek: Dotazovací jazyk

Nástroj pro monitorování a analýzu českého internetu a sociálních médií

PRODUKTY. Tovek Tools

PRODUKTY. Tovek Tools

Příručka uživatele systému Museion. Quick filtr

Příručka uživatele systému Museion. Fulltext

Úvod do filtrace, Quick filtr

Algoritmizace a programování

Programovací jazyk Pascal

Správnost XML dokumentu

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

Úvod do databázových systémů

Tovek Tools. Tovek Tools jsou standardně dodávány ve dvou variantách: Tovek Tools Search Pack Tovek Tools Analyst Pack. Připojené informační zdroje

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

Základní přehled SQL příkazů

Začínáme s Tovek Tools

NEJVYŠŠÍ SPRÁVNÍ SOUD

FUNKCE 3. Autor: Mgr. Dana Kaprálová. Datum (období) tvorby: září, říjen Ročník: sedmý. Vzdělávací oblast: Informatika a výpočetní technika

Tabulkový procesor. Základní rysy

Kódy pro formát čísla

Vyhledávání na portálu Knihovny.cz

Nový způsob práce s průběžnou klasifikací lze nastavit pouze tehdy, je-li průběžná klasifikace v evidenčním pololetí a školním roce prázdná.

zobrazuje názvy polí, vložené hodnoty jednotlivých záznamů, lze v něm zadávat data (přidávat záznamy) v návrhovém zobrazení:

Profesis KROK ZA KROKEM 2

Depozitář 1 struktura a nastavení

PRODUKTY Tovek Server 6

Tovek Server. Tovek Server nabízí následující základní a servisní funkce: Bezpečnost Statistiky Locale

Funkce. Definiční obor a obor hodnot

Prolog PROgramming in LOGic část predikátové logiky prvního řádu rozvoj začíná po roce 1970 Robert Kowalski teoretické základy Alain Colmerauer, David

Informační systémy ve zdravotnictví. 8. cvičení

Příprava dokumentů textovým procesorem II.

Internetové vyhledávače

EBSCO. Poklikneme na možnost EBSCOhost Web. Vybereme (poklepeme, zaškrtneme) databázi, s kterou chceme pracovat.

Použití filtrů v Museionu

5 Přehled operátorů, příkazy, přetypování

Řazení řádků ve vzestupném pořadí (A až Z nebo 0 až 9) nebo sestupném pořadí (Z až A nebo 9 až 0)

Operátory, výrazy. Tomáš Pitner, upravil Marek Šabo

Test prvočíselnosti. Úkol: otestovat dané číslo N, zda je prvočíslem

MQL4 COURSE. By Coders guru -4 Operace & Výrazy

Úvod do databázových systémů

Nápověda k pokročilému vyhledávání

XMW4 / IW4 Pokročilé SELECT dotazy. Štefan Pataky

4.2 Syntaxe predikátové logiky

Úvod do databázových systémů

Assembler - 5.část. poslední změna této stránky: Zpět

MODUL MUNI ASPI, a. s muni_manual.indd :57:23

ROZHRANÍ PRO ZPŘÍSTUPNĚNÍ A PREZENTACI ZNALOSTNÍ DATABÁZE INTERPI UŽIVATELSKÁ PŘÍRUČKA

CVIČNÝ TEST 35. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17

KAPITOLA 9 - POKROČILÁ PRÁCE S TABULKOVÝM PROCESOREM

Microsoft. Access. Nová databáze, návrh tabulky. Mgr. Jan Veverka Střední odborná škola sociální Evangelická akademie

Matematika B101MA1, B101MA2

HROMADNÉ ÚPRAVY NAJÍT A NAHRADIT

Formální systém výrokové logiky

1. Umístěte kurzor do sloupce Datový typ na řádek s polem, ve kterém vytvořit chcete seznam.

Microsoft Office. Excel vyhledávací funkce

Sítě SFN Systém pro analýzu a vizualizaci pokrytí a rušení vysílacích sítí

POUŽITÍ DOTAZOVACÍHO JAZYKU PQF V INTERPI

24. XML. Aby se dokument XML vůbec zobrazil musí být well-formed (správně strukturovaný). To znamená, že splňuje formální požadavky specifikace XML.

Instalace. Produkt je odzkoušen pro MS SQL server 2008 a Windows XP a Windows 7. Pro jiné verze SQL server a Windows nebyl testován.

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Úvod do UNIXu. Okruh č. 4 - vi, regulární výrazy, grep a sed. Jakub Galgonek. verze r2. inspirováno materiály Davida Hokszy

HELP Rešerše průmyslových vzorů

KIV/ZIS cvičení 5. Tomáš Potužák

Výroková a predikátová logika - II

Obsah. 1.1 Práce se záznamy Stránka Dnes Kontakt se zákazníkem... 5

Programy na PODMÍNĚNÝ příkaz IF a CASE

Modifikace výchozího chování programu (souboru Admin.ini) Uživatelská příručka

Emise ze stacionárních zdrojů

Kurzy. v 2.0. Níže popsaný návod je určen pro uživatele s rolí Administrátor, není-li uvedeno jinak. Základní popis kurzu 2

Relační DB struktury sloužící k optimalizaci dotazů - indexy, clustery, indexem organizované tabulky

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií

Espacenet

Allegro fakturace. Schéma fakturačního modulu. Podstatné vlastnosti. Allegro Business Solution Fakturace

DATABÁZE MS ACCESS 2010

Textové, datumové a časové funkce

PŘÍRUČKA UŽIVATELE. Připraveno společností Neit Consulting, s.r.o. Datum poslední aktualizace: Verze: 2.0

Manuál k programu EMSoftware

WR Reality. Web Revolution. Uživatelský manuál administračního rozhraní

Průvodce aplikací FS Karta

Příručka pro vyhledávání v digitálním archivu Aip Safe III

Penalizační faktury E S O 9 i n t e r n a t i o n a l a. s.

Popis ovládání. Po přihlášení do aplikace se objeví navigátor. Navigátor je stromově seřazen a slouží pro přístup ke všem oknům celé aplikace.

UŽIVATELSKÁ PŘÍRUČKA K INTERNETOVÉ VERZI REGISTRU SČÍTACÍCH OBVODŮ A BUDOV (irso 4.x) VERZE 1.0

Výroková a predikátová logika - II

Všem pedagogům, studentům i zaměstnancům s platnými přihlašovacími údaji do Informačního systému univerzity VŠFS.

Znak Slovy Popis Zdroj Výsledek Formátova cí řetězec v CZ verzi Excelu

Modely vyhledávání informací 4 podle technologie. 1) Booleovský model. George Boole Aplikace booleovské logiky

Dolování v objektových datech. Ivana Rudolfová

Databázový systém označuje soubor programových prostředků, které umožňují přístup k datům uloženým v databázi.

VYUŽITÍ PRAVDĚPODOBNOSTNÍ METODY MONTE CARLO V SOUDNÍM INŽENÝRSTVÍ

MODUL BIBLIOGRAFIE ASPI, a. s. 2006

Manuál k programu RIZIKA

Algoritmizace a programování

VYHLEDÁVÁNÍ V NOVÉM PROSTŘEDÍ MEDVIK : ZÁKLADNÍ HLEDÁNÍ. Adéla Jarolímková Národní lékařská knihovna, referát metodiky a vzdělávání

0.1 Úvod do matematické analýzy

Vyhledávání v citační databázi Web of Science (WOS)

umenugr JEDNOTKA PRO VYTVÁŘENÍ UŽIVATELSKÝCH GRAFICKÝCH MENU Příručka uživatele a programátora

RELACE, OPERACE. Relace

Matice. Modifikace matic eliminační metodou. α A = α a 2,1, α a 2,2,..., α a 2,n α a m,1, α a m,2,..., α a m,n

Struktura seminární práce

Transkript:

Tovek: Dotazovací jazyk Tovek Tools 7.1 a vyšší Tovek Server 6.4 a vyšší Copyright TOVEK, spol. s r.o. www.tovek.cz

Tovek Dotazovací jazyk Tovek Tools 7.1 a vyšší, Tovek Server 6.4 a vyšší

Copyright Copyright 1996-2013 TOVEK, spol. s r.o. Tento dokument a softwarový produkt, který popisuje, jsou chráněny autorskými právy a mezinárodními dohodami o duševním vlastnictví. Lze s nimi nakládat pouze v souladu s platnou licenční smlouvou. Informace obsažené v dokumentaci mohou podléhat změnám bez předchozího upozornění. Popisovaný produkt obsahuje: Clucene Core Library Licencováno na základě Apache License, verze 2.0. Licence je k dispozici na http://www.apache.org/licenses/license-2.0. S produktem lze nakládat pouze v souladu s touto licencí. Ochranné známky TOVEK, logo TOVEK a InfoRating jsou registrované ochranné známky společnosti TOVEK, spol. s r.o. Microsoft a Windows jsou registrované ochranné známky skupiny společností Microsoft. Další produkty a služby mohou být registrovanými ochrannými známkami nebo ochrannými známkami svých příslušných vlastníků a v dokumentaci jsou uváděny pouze pro referenci. Upozornění a vzdání se odpovědnosti Pokud není písemně uzavřenou smlouvou stanoveno jinak, je tento softwarový produkt a související dokumentace poskytován jak-je, bez záruk jakéhokoli druhu, ať již výslovně vyjádřených nebo předpokládaných. TOVEK, spol. s r.o. http://www.tovek.cz 4

Obsah Obsah Parsery - přehled... 7 Jednoduchý dotaz... 8 Úvod do dotazovacího jazyka... 8 Základní pojmy a jejich vztah k dotazovacímu jazyku... 8 Přehled operátorů... 9 Přehled modifikátorů... 13 Syntaxe dotazovacího jazyka... 14 Striktní zápis dotazů... 14 Zjednodušený zápis dotazů... 15 Prefix notace operátorů... 19 Infix notace operátorů... 19 Jména polí... 22 Koeficient váhy operátorů... 22 Pojmenované části dotazu... 22 Operátory... 23 Operátor all... 23 Operátor and, and/w, and/l, and/s, and/c... 24 Operátor any... 25 Operátor best... 26 Operátor contains... 27 Operátor ends... 27 Operátor entity... 28 Operátory field a filter... 30 Operátor freetext... 30 Operátor in... 31 Operátor like... 32 Operátor matches... 32 Operátor near, near/w, near/c, near/m... 33 Operátor or, or/w, or/l, or/s, or/c... 35 Operátor paragraph... 36 Operátor phrase... 37 Operátor range, range/n, range/d, range/t... 38 Operátor sentence... 38 Operátor soundex... 39 Operátor starts... 40 Operátor stem, beststem, multistem... 41 Operátor substring... 42 Operátor thesaurus... 43 Operátor topic, concept... 44 Operátor typo/n... 45 Operátor wildcard... 46 Operátor word... 47 Operátory!=, <, <=, =, >, >=... 48 5

Obsah Modifikátory... 51 Modifikátor case... 51 Modifikátor count/n... 52 Modifikátor lang/id... 52 Modifikátor many... 52 Modifikátor not... 53 Modifikátor order... 53 Volný text... 54 Boolovský dotaz... 55 Internetový parser... 56 Přehled... 56 Pojmy... 56 Pole... 56 Modifikátory pojmů... 56 Hledání pomocí zástupných znaků... 57 Konfúzní hledání... 57 Poziční hledání... 57 Hledání v rozmezí... 58 Posílení váhy pojmu... 58 Boolovské operátory... 58 OR... 59 AND... 59 +... 59 NOT... 59 -... 60 Sdružování poddotazů... 60 Sdružování klauzulí... 60 Pokročilý dotaz... 61 6

Parsery - přehled Parsery - přehled Parser dotazů určuje, jaký styl se bude používat pro zadání dotazu, resp. jak bude s textem zadaným do dotazu zacházeno při zpracování dotazu. Možné jsou tyto parsery: TS_QueryParser_Simple - Jednoduchý dotaz (viz str. 8) TS_QueryParser_FreeText - Volný text (viz str. 54) TS_QueryParser_Boolean - Boolovský dotaz (viz str. 55) TS_QueryParser_Internet - Internetový parser (viz str. 56) TS_QueryParser_Advanced - Pokročilý dotaz (viz str. 61) Nejpoužívanější je typ jednoduchý dotaz, který je také v této příručce nejobsáhleji popsán. Také pokud je zmiňován dotazovací jazyk, je myšlen jazyk používaný parserem typu jednoduchý dotaz. 7

Jednoduchý dotaz Úvod do dotazovacího jazyka Tato část popisuje dotazovací jazyk pro parser typu jednoduchý dotaz, jeho jednotlivé stavební kameny a způsob jejich použití pro vyhledání dokumentů v produktech firmy Tovek. Tato kapitola uvádí stručný přehled všech operátorů dotazovacího jazyka, jejich členění a možnosti jejich zápisu. Detailní informace a příklady užití konkrétních operátorů jsou uvedeny v příslušných dalších kapitolách. Základní pojmy a jejich vztah k dotazovacímu jazyku dotaz infix notace jazyk dotazu koeficient váhy modifikátor Definuje podmínky, které musí být splněny pro všechny vyhledané dokumenty, a způsob jejich ohodnocení. Dotaz může obsahovat operátory, modifikátory a pojmy. Vyhodnocením dotazu jsou jednotlivým dokumentům přiřazeny váhy odpovídající jejich relevanci. Zápis dotazu, při kterém se operátor nachází mezi jeho parametry. Jazyk dotazu ovlivňuje způsob, kterým jsou zpracovávány pojmy dotazu. Není-li žádný jazyk u dotazu uveden, tak je použit výchozí jazyk dotazu definovaný v konfiguraci indexu. Koeficient váhy je číselný údaj u dotazu, kterým je násobena vypočítaná váha dokumentu. Platná hodnota je z intervalu (0-1>. Upravuje význam modifikované části dotazu. operátor poddotaz pojem pojmenování dotazu Operátory slouží k definici základních dotazů nebo spojují několik dotazů dohromady a definují podmínky jejich vyhodnocení. Dotaz, uvedený jako parametr operátoru. Konkrétní slovo nebo množina slov, které se hledají nebo které slouží jako parametry nadřízeného operátoru. Pojmenování dotazu nebo jeho částí slouží k definování témat, případně ke zjednodušení zápisu dotazu. 8

pole dotazu prefix notace speciální znaky váha zjednodušený zápis dotazu Pole dotazu určuje část dokumentu, pro kterou se dotaz vyhodnocuje. Není-li pole dotazu uvedeno, tak se použije výchozí pole dotazu z konfigurace indexu. Zápis dotazu, při kterém se operátor nachází před jeho parametry, které jsou uzavřené v závorkách. Znaky, kterým musí předcházet zpětné lomítko, mají-li být součástí hledaného pojmu. Jedná se o znaky `'\"<>()[]{},=\, a v některých případech i o znaky *+?. Váha je číselný údaj definující relevanci dokumentu k danému dotazu. Zápis dotazu, při kterém je možné vynechat pojmové operátory. Přehled operátorů Operátory lze rozdělit do dvou hlavních skupin podle toho, jakého typu jsou jejich argumenty. První skupina je tvořena operátory, jejichž argumenty jsou jednotlivé pojmy. Tyto operátory umožňují definovat skupiny pojmů, které se mají v dokumentech vyhledávat. Druhá skupina je tvořena operátory, které spojují dva a více dotazů dohromady a definují, v jakém vztahu se musí tyto dotazy ve vyhodnocovaných dokumentech vyskytovat. Podle významu lze operátory dále rozdělit na následující skupiny: Pojmové operátory - Pojmové operátory - Konceptuální operátory - Poziční operátory - Relační operátory - Pokročilé operátory Pojmové operátory jsou základní stavební kameny dotazů a definují, jaké pojmy se mají v dokumentech vyhledávat. word Slouží k vyhledání dokumentů, které obsahují jeden nebo více výskytů daného pojmu v zadaném tvaru. 9

stem beststem multistem wildcard typo/n thesaurus soundex range Umožňuje vyhledat dokumenty obsahující uvedený pojem v jakémkoli jeho mluvnickém tvaru. Jeho přesné chování je určeno konfigurací fulltextového jádra. Chová se buď jako operátor beststem a nebo jako operátor multistem. Hledá dokumenty obsahující slova, která jsou jazykovým modulem převededa na stejný základní tvar jako zadané slovo. Vrací-li tento modul více než jeden základní tvar, pak tento operátor vybere pouze ten tvar, který je zadanému slovu nejpodobnější. Hledá dokumenty obsahující slova, která jsou jazykovým modulem převededa na jakýkoliv ze základních tvarů vypočítaných pro zadané slovo. Najde dokumenty, které obsahují jeden nebo více pojmů, které odpovídají zadanému regulárnímu výrazu. Vyhledá dokumenty, které obsahují pojmy lišící se od zadaného pojmu maximálně o daný počet chyb. Slouží k vyhledání dokumentů obsahujících jakýkoli mluvnický tvar zadaného pojmu nebo jeho příbuzných pojmů. Umožňuje nalézt dokumenty obsahující jakýkoliv tvar pojmů znějících podobně jako zadaný pojem. Vyhledá dokumenty obsahující pojmy v daném rozsahu. Konceptuální operátory Konceptuální operátory spojují jednotlivé dotazy do větších celků: best and Slouží k nalezení dokumentů, které vyhovují alespoň jednomu dotazu uvedenému jako parametr operátoru. Tento operátor řadí vybrané dokumenty v závislosti na výskytu každého parametru v dokumentu a jeho skóre je tím vyšší, čím více poddotazům odpovídá. Najde dokumenty, které vyhovují všem dotazům uvedeným jako parametr operátoru. Tento operátor podporuje několik různých 10

způsobů vážení výsledků. or all any Najde dokumenty, které vyhovují alespoň jednomu dotazu uvedenému jako parametr operátoru. Tento operátor podporuje několik různých způsobů vážení výsledků. Vyhodnocuje dokumenty stejně jako operátor and, ale nepočítá skóre, a je tudíž rychlejší. Vyhodnocuje dokumenty stejně jako operátor or, ale nepočítá skóre, a je tudíž rychlejší. Poziční operátory Poziční operátory vyhodnocují dokumenty nejen na základě samotného výskytu pojmů, ale i na jejich konkrétní pozici: near/n paragraph sentence phrase Slouží k nalezení dokumentů, které vyhovují všem dotazům uvedeným jako parametr operátoru, jejichž výskyty se nacházejí do maximální uvedené vzdálenosti. Operátor near podporuje několik způsobů vážení dokumentů, přičemž standardně je skóre dokumentů tím vyšší, čím blíže u sebe se jednotlivé výskyty nacházejí. Tento operátor vyhodnocuje dokumenty stejně jako near/n, kde n je délka odstavce, která je standardně nastavená na hodnotu 64. Tento operátor vyhodnocuje dokumenty jako near/n, kde n je délka věty, která je standardně nastavená na hodnotu 16. Umožňuje nalézt dokumenty obsahující frázi složenou z výskytů jednotlivých dotazů uvedených jako parametr operátoru. Nejčastěji se používá k vyhledání dokumentů obsahujících frázi složenou z několika konkrétních pojmů, příp. jejich stemů. Relační operátory Relační operátory slouží k nastavování podmínek pro netokenizovaná pole dokumentu (tokenizace je vysvětlena v příručce Tovek: Fulltextové jádro, Příručka administrátora). Typicky se jedná o pole obsahující datum, číslo nebo řetězcovou konstantu: contains Umožňuje nalézt dokumenty, které v daném poli obsahují daný řetězec. 11

matches starts substring ends Vyhledá dokumenty, které v daném poli obsahují hodnotu odpovídající uvedenému vzoru. Najde dokumenty, které v daném poli obsahují hodnotu začínající uvedeným řetězcem. Vyhledá dokumenty, které v daném poli obsahují hodnotu, jejíž součástí je uvedený řetězec Najde dokumenty, které v daném poli obsahují hodnotu končící uvedeným řetězcem. < Najde dokumenty s hodnotou v daném poli menší než uvedená hodnota. <= Najde dokumenty s hodnotou v daném poli menší nebo rovnou uvedené hodnotě. = Najde dokumenty s hodnotou v daném poli rovnou uvedené hodnotě.!= Najde dokumenty s hodnotou v daném poli různou od uvedené hodnoty. >= Najde dokumenty s hodnotou v daném poli větší nebo rovnou uvedené hodnotě. > Najde dokumenty s hodnotou v daném poli větší než uvedená hodnota. Pokročilé operátory Dotazovací jazyk podporuje následující pokročilé operátory: topic, concept freetext in Umožňuje využít témata uložená u indexu, případně definovaná lokálně v rámci daného dotazu. Pomocí operátoru freetext lze specifikovat dotaz volným textem. Operátor in definuje v jaké části dokumentu, případně v jakém poli se má dotaz vyhodnocovat. 12

like entity Najde dokumenty podobné uvedenému dokumentu. Najde dokumenty obsahující daný typ entit případně konkrétní entitu. Přehled modifikátorů Modifikátory upravují nebo upřesňují význam operátorů. Dotazovací jazyk obsahuje následující modifikátory: case many not order count/n lang/id [číslo] [jméno] Modifikátor case lze použít s některými pojmovými operátory a omezuje vyhledávání pouze na pojmy, které se shodují i ve velikosti jednotlivých písmen. Tento modifikátor nastavuje výpočet váhy dokumentu, který zohledňuje počet výskytů hledaných pojmů v daném dokumentu. Čím více výskytů dokument obsahuje, tím vyšší bude jemu přiřazená váha. Obrací význam modifikovaného dotazu, a tudíž umožňuje nalézt všechny dokumenty, které mu nevyhovují. Operátor order určuje, že se jednotlivé parametry operátoru musí v dokumentu vyskytovat ve stejném pořadí, ve kterém jsou uvedeny v dotazu. Určuje minimální nebo maximální počet výskytů daného poddotazu v dokumentu. Definuje jazyk všech parametrů daného operátoru. Koeficient váhy umožňuje ovlivnit výsledné skóre přiřazené dokumentu při vyhodnocování dotazu. Jednotlivé části dotazu mohou mít různé koeficienty váhy a tak různě přispívat k celkové váze dokumentu. Pojmenování části dotazu, díky kterému se lze následně na danou část dotazu odkazovat pomocí operátoru topic. [jméno/číslo] V případě, že je třeba operátor nejen pojmenovat, ale i změnit jeho koeficient váhy, pak se oba tyto údaje zapíší do hranatých závorek oddělených lomítkem. 13

Syntaxe dotazovacího jazyka Tato kapitola popisuje způsob zápisu dotazů pomocí dotazovacího jazyka. Dotazovací jazyk umožňuje využívat jak striktního, tak i zjednodušeného zápisu dotazů, přičemž oba tyto zápisy mohou být v rámci jednoho dotazu kombinovány. Totéž platí o prefix a infix notaci operátorů. Striktní zápis dotazů Striktní zápis dotazů je způsob zápisu, při kterém jsou vždy uvedeny všechny použité modifikátory i operátory. Operátory jsou zapsané pomocí prefix notace..many.stem( aféra ) <many><stem>( aféra ) Tento způsob zápisu je nejčastěji využíván při definování složitých expertních dotazů nebo uložených témat, protože umožňuje uvést explicitně všechny parametry hledání a díky prefix notaci operátorů je jednoznačně určené, které parametry patří kterým operátorům. Striktní zápis dotazů umožňuje dva různé zápisy modifikátorů a operátorů: <modifikátor>.modifikátor <operátor>( parametry oddělené čárkou ).operátor( parametry oddělené čárkou ) Oba dva zápisy jsou ekvivalentní a je možné je kombinovat. Jména operátorů a modifikátorů jsou nezávislá na velikosti písmen a tudíž je možné jakýkoliv zápis včetně následujících:.operátor / <operátor>.operátor / <Operátor>.OPERÁTOR / <OPERÁTOR> Mezi jednotlivými modifikátory a operátory a dalšími prvky dotazu je možné psát mezery pro zvýšení čitelnosti, ale není to nutné: [ 50 ]. many. case. word ( aféra ) [ 50 ] < many > < case > < word > ( aféra ) [50].many.case.word(aféra) [50]<many><case><word>(aféra) 14

Pojmy uvedené jako parametry jednotlivých operátorů mohou obsahovat libovolné znaky včetně mezer, ale nesmí obsahovat řetězce mající význam operátoru a speciální znaky. Při zápisu pojmů obsahujících speciální znaky je potřeba před těmito znaky uvést zpětné lomítko, případně dané pojmy uzavřít do dvojitých uvozovek, jednoduchých uvozovek nebo zpětných jednoduchých uvozovek. Speciální znaky, které je nutné uvést zpětným lomítkem, jsou následující: `'"<>()[]{},=\ Dotaz, který najde dokumenty obsahující např. pojem a'b(c, je nutné tedy zapsat tímto způsobem:.many.word( a\'b\(c ).many.word( "a'b(c" ).many.word( 'a\'b(c' ).many.word( `a'b(c` ) Pokud je pojem uzavřen v uvozovkách, musí se zpětné lomítko použít pouze, pokud pojem obsahuje tyto uvozovky nebo zpětné lomítko. Např. pro pojem a\b c lze dotaz zapsat takto:.many.word( "a\\b\"c" ) Parametry těchto operátorů jsou před vyhodnocením zpracovány stejným způsobem jako obsah pole, ve kterém se vyhodnocuje, a v případě, že se rozpadne na více částí, změní se příslušná část na frázi z těchto částí. Zjednodušený zápis dotazů Zjednodušený zápis dotazů slouží především k uvádění jednoduchých krátkých dotazů. Tento zápis umožňuje vynechat nejčastější pojmové operátory a s nimi spojené modifikátory. Zjednodušený zápis dotazů je možné kombinovat s infix i prefix notací operátorů. Zkrácené zápisy lze použít při vyhledávání dokumentů v následujících situacích: Úkol č. 1 Striktní zápis Zjednodušený zápis Vyhledání dokumentů obsahujících libovolný tvar pojmu aféra s vážením zahrnujícím četnost daného pojmu v dokumentu..many.stem( aféra ) 'aféra' `aféra` aféra 15

Uvedený pojem nesmí obsahovat mezery, jinak se daný dotaz bude chovat jako vyhledávání fráze. V prvních dvou verzích zjednodušeného zápisu nesmí hledaný pojem obsahovat uvozovací znak, případně musí být tomuto znaku předřazeno zpětné lomítko. V poslední uvedené a nejčastěji používané variantě dotazu nesmí uvedený pojem obsahovat ani mezery ani následující speciální znaky, aniž by byly uvedeny zpětným lomítkem: `'"<>()[]{},=\*+? Úkol č. 2 Striktní zápis Zjednodušený zápis Vyhledání dokumentů obsahujících konkrétní tvar pojmu aféra s vážením zahrnujícím četnost daného pojmu v dokumentu nezávisle na velikosti písmen..many.word( aféra ) "aféra" Uvedený pojem nesmí obsahovat mezery, jinak se daný dotaz bude chovat jako vyhledávání fráze. Navíc nesmí hledaný pojem obsahovat uvozovací znak, případně musí být tomuto znaku předřazeno zpětné lomítko. Úkol č. 3 Striktní zápis Zjednodušený zápis Vyhledání dokumentů obsahujících daný tvar pojmu Aféra s vážením zahrnujícím četnost daného pojmu v dokumentu a respektováním malých a velkých písmen..case.many.stem( Aféra ).case "Aféra".case Aféra Uvedený pojem nesmí obsahovat mezery, jinak se daný dotaz bude chovat jako vyhledávání fráze. V první verzi nesmí hledaný pojem obsahovat uvozovací znak, případně musí být tomuto znaku předřazeno zpětné lomítko. Ve druhé variantě pak nesmí uvedený pojem obsahovat ani mezery ani následující speciální znaky, aniž by byly uvedeny zpětným lomítkem: `'"<>()[]{},=\*+? 16

Úkol č. 4 Striktní zápis Zjednodušený zápis Vyhledání dokumentů obsahujících pojmy vyhovující regulárnímu výrazu afér*.many.wildcard( afér* ) afér* Pro uvedený regulární výraz platí stejné podmínky jako v ostatních případech při hledání pojmu, který není v uvozovkách. Nesmí tudíž obsahovat mezery a všem speciálním znakům kromě? a * musí předcházet zpětné lomítko. Právě výskyt alespoň jednoho znaku? a * odlišuje hledání regulárního výrazu od hledání všech tvarů daného pojmu. Tyto znaky mají následující význam:? jeden libovolný znak * - žádný nebo libovolný počet znaků Úkol č. 5 Striktní zápis Zjednodušený zápis Vyhledání dokumentů obsahujících libovolný tvar fráze mezinárodní aféra s vážením zahrnujícím četnost daných pojmů..many.phrase(.many.stem( mezinárodní ),.many.stem( aféra ) ) 'mezinárodní' 'aféra' `mezinárodní` `aféra` 'mezinárodní aféra' `mezinárodní aféra` mezinárodní aféra Pro jednotlivé pojmy uvedené ve zjednodušeném dotazu platí stejné podmínky jako v Úkolu č.1. V prvních čtyřech verzích zjednodušeného zápisu nesmí hledané pojmy obsahovat uvozovací znak, případně musí být tomuto znaku předřazeno zpětné lomítko. V poslední uvedené a nejčastěji používané variantě dotazu nesmí uvedený pojem 17

obsahovat ani mezery ani následující speciální znaky, aniž by byly uvedeny zpětným lomítkem: `'"<>()[]{},=\*+? Úkol č. 6 Striktní zápis Zjednodušený zápis Vyhledání dokumentů obsahujících konkrétní tvar fráze mezinárodními aférami s vážením zahrnujícím četnost daných pojmů..many.phrase(.many.word( mezinárodními ),.many.word( aférami ) ) "mezinárodními aférami" "mezinárodními" "aférami" Pro jednotlivé pojmy uvedené ve zjednodušeném dotazu platí stejné podmínky jako v Úkolu č. 2. Nesmí obsahovat mezery a uvozovacímu znaku musí předcházet zpětné lomítko. Úkol č. 7 Striktní zápis Zjednodušený zápis Vyhledání dokumentů obsahujících obecnou frázi mezinárod* aféra ABC s vážením zahrnujícím četnost daných pojmů..many.phrase(.many.wildcard( mezinárod* ),.many.stem( aféra ),.many.word( ABC ) ) mezinárod* aféra "ABC" mezinárod* 'aféra' "ABC" 18

Úkol č. 8 Striktní zápis Zjednodušený zápis Vyhledání dokumentů vyhovujících uloženému tématu témaaféra..topic( téma-aféra ) {téma-aféra} {"téma-aféra"} {'téma-aféra'} {`téma-aféra`} Jméno tématu může na rozdíl od pojmů obsahovat mezery. V takovém případě ale musí být celé jméno uzavřené do dvojitých uvozovek, jednoduchých uvozovek nebo zpětných jednoduchých uvozovek. Je-li součástí jména tématu speciální znak, musí před ním být uvedeno obrácené lomítko. Prefix notace operátorů Prefix notace operátorů je způsob zápisu operátorů a jejich parametrů, při kterém je nejprve uveden příslušný operátor, a pak v závorce následují čárkou oddělené parametry. Počet parametrů, které je možné pro daný operátor uvést, závisí na konkrétním operátoru. Před každým operátorem mohou být uvedeny modifikátory upravující jeho význam, přičemž nezáleží na jejich pořadí: # Najde dokumenty, které neobsahují řetězec AFÉRA.not.many.case.word( AFÉRA ).many.case.not.word( AFÉRA ).case.many.not.word( AFÉRA ) # Najde dokumenty obsahující aféra stemované podle pravidel # českého jazyka.many.lang/cs.stem( aféra ) lang/cs.many.stem( aféra ) Infix notace operátorů Infix notace operátorů je dostupná pouze pro některé operátory. Každý z těchto operátorů má dva parametry a samotný operátor je uveden mezi nimi: mezinárodní.and aféra zelený.or modrý 19

Tento způsob notace operátorů se často využívá společně se zjednodušeným zápisem dotazů pro pokládání krátkých dotazů: mezinárodní.and aféra protože je úspornější než striktní zápis:.and(.many.stem( mezinárodní ),.many.stem( aféra )) Infix notace operátorů umožňuje navíc zkrátit zápis následujících operátorů: počítač.best notebook počítač, notebook obchod.and sklad obchod and sklad firma.and.not bankrot firma not bankrot start.or cíl start or cíl Při vyhodnocování dotazů s infix notací operátorů se zpracovávají jednotlivé části podle priority příslušného operátoru. Operátory, které mají stejnou prioritu, se zpracovávají zleva doprava. Následující tabulka uvádí priority jednotlivých operátorů, operátory s nejvyšší prioritou jsou vyhodnocovány jako první: Nejvyšší priorita 0 in 1 near, phrase, paragraph, sentence, all, any 2 and, not (zkrácená forma.and.not) 3 best 4 or Pořadí vyhodnocení jednotlivých operátorů může být změněno uzavřením částí dotazu do závorek. Následující příklady uvádějí způsob použití infix notace, přičemž všechny dotazy uvedené v jednom společném poli vedou vždy ke stejnému výsledku: 20

škoda or audi or ford škoda.or audi.or ford ( škoda or audi ) or ford škoda or ( audi or ford ) Všechny tyto dotazy vyhledají dokumenty, které obsahují alespoň jeden výskyt některého tvaru jednoho z uvedených pojmů. Protože je zde použit pouze jen jeden typ operátoru, nezmění závorky žádným způsobem význam dotazu a je možné je zcela vynechat. Operátor or je jako většina operátorů dotazovacího jazyka komutativní, a proto nezáleží ani na pořadí uvedených pojmů v dotazu. Častěji než operátor or se však používá operátor best. Tyto dva operátory se od sebe liší pouze ve způsobu vážení nalezených dokumentů. Operátor best zvýhodňuje dokumenty, které vyhovují více jeho poddotazům, zatímco operátor or zohledňuje pouze váhu nejlepšího poddotazu: škoda, audi, ford škoda.best audi.best ford Konkrétně to znamená, že dokument, který obsahuje jeden pojem Škoda a jeden pojem Audi dostane při použití operátoru best vyšší váhu, než dokument, který obsahuje pouze jeden pojem Škoda. Při použití operátoru or bude oběma dokumentům přiřazena stejná váha. Operátor best je jedním z nejčastěji používaných operátorů, a proto se jako jeho zkrácená podoba používá pouze čárka. škoda and bílá not diesel škoda.and bílá.and.not diesel škoda not diesel and bílá Tyto dotazy vyhledají všechny dokumenty, které obsahují pojem Škoda a pojem bílá, ale neobsahují pojem diesel. Pozor, operátor not, který je uvedený v posledním příkladu, je zkrácený zápis pro operátor.and a modifikátor.not, který je aplikován na další poddotaz. Tento operátor není na rozdíl od ostatních komutativní, a proto nelze jeho parametry prohodit bez změny významu dotazu: bílá not diesel diesel not bílá 21

Jména polí Jméno pole může tvořit jedno slovo nebo více slov uzavřených do zpětných jednoduchých uvozovek. Soubor.substring( pdf ) `Jméno souboru`.substring( pdf ) Koeficient váhy operátorů Při sestavování dotazu je možné jednotlivým jeho částem přiřadit různé koeficienty váhy podle jejich důležitosti. Tímto způsobem je možné zcela zásadně ovlivnit konečné řazení dokumentů v seznamu výsledků. Koeficienty váhy jsou vždy uváděny jako modifikátory konkrétních operátorů. Jejich hodnoty se mohou pohybovat v rozmezí od 0.01 do 1.00 a definují faktor, kterým je vynásobena váha dokumentu po vyhodnocení daného operátoru. Hodnota koeficientu váhy může být zapsána následujícími způsoby: 1. Desetinné číslo z intervalu (0,1.00> definující konkrétní hodnotu koeficientu 2. Celé číslo z intervalu <1,100> definující procentuální hodnotu koeficientu. V následujícím příkladu jsou uvedené skupiny shodných dotazů lišících se pouze v jejich zápisu: [50]mezinárodní.and [80]aféra [.5]mezinárodní.and [.8]aféra [0.5]mezinárodní.and [0.8]aféra.and( [50].many.stem( mezinárodní ), [80].many.stem( aféra )).and( [.5].many.stem( mezinárodní ), [.8].many.stem( aféra )).and( [0.5].many.stem( mezinárodní ), [0.8].many.stem( aféra )) [90]škoda, [50]audi, [30]ford [.9]škoda, [.5]audi, [.3]ford [0.9]škoda, [0.5]audi, [0.3]ford.best( [90]škoda, [50]audi, [30]ford ).best( [.9]škoda, [.5]audi, [.3]ford ).best( [0.9]škoda, [0.5]audi, [0.3]ford ) Pojmenované části dotazu Pojmenovávání částí dotazu slouží ke zjednodušení zápisu dlouhých dotazů, ve kterých se některé jeho části opakují, a k definování uložených témat, na která je možné se v dalších dotazech odkazovat. K odkázání se na předdefinované téma nebo na pojmenovanou část aktuálního dotazu slouží operátor topic, který má jako parametr 22

jméno daného tématu nebo části dotazu, nebo jeho zjednodušenou formou, uzavřením jména do složených závorek. Pojmenování částí dotazu jsou vždy uváděna jako modifikátory konkrétních operátorů, které tvoří kořen pojmenovaného dotazu. V případě, že je jméno jednoslovné, pak je možné zapsat ho bez uvozovek přímo do hranatých závorek, přičemž je nutné vložit zpětné lomítko před každý speciální znak a normální lomítko: `'"<>()[]{},=\/ Jméno části dotazu může být uvedeno ve dvojitých uvozovkách, jednoduchých uvozovkách nebo zpětných jednoduchých uvozovkách. V tomto případě je nutné uvést zpětné lomítko pouze před použitými uvozovkami. Následující příklad pojmenování dotazu uvádí dvě skupiny zcela shodných dotazů, které se liší pouze formou zápisu: [auto].best( škoda, audi ) ["auto"].best( škoda, audi ) ['auto'].best( škoda, audi ) [`auto`].best( škoda, audi ) [číslo\<5].or( jedna, dvě, tři, čtyři ) ["číslo<5"].or( jedna, dvě, tři, čtyři ) ['číslo<5'].or( jedna, dvě, tři, čtyři ) [`číslo<5`].or( jedna, dvě, tři, čtyři ) V následujícím příkladu je pojmenována část dotazu a vzápětí znovu využita, což vede ke zkrácení zápisu dotazu:.best(.and( cena, [auto].best( škoda, audi, ford )),.and( spotřeba, {auto} ),.and( výbava, {auto} ),.and( testy, {auto} ) ) Operátory Operátor all Popis Vybere dokumenty, které vyhovují všem dotazům uvedeným jako parametry operátoru. Na rozdíl od operátoru and přiřadí tento operátor všem vyhovujícím dokumentům váhu 1.00. Díky tomu je jeho vyhodnocení ve fulltextovém jádru rychlejší. 23

Striktní zápis.all ( dotaz1,, dotazn ) <all> ( dotaz1,, dotazn ) Infix notace Modifikátory dotaz1.all dotaz2 dotaz1 <all> dotaz2 many Změní vážení operátoru. Operátor přiřadí dokumentům nejmenší váhu vrácenou jeho poddotazy. order Je-li tento modifikátor uveden, pak je výsledek hledání navíc závislý na pořadí jednotlivých poddotazů. Pro všechny nalezené dokumenty platí, že výskyty poddotazů operátoru se v nich objevují ve stejném pořadí, jako jsou v zadání dotazu. Příklady:.all( modrá, červená, zelená, žlutá ) modrá.all červená.all zelená.all žlutá.order.all( první, druhý, třetí ) Operátor and, and/w, and/l, and/s, and/c Popis Vybere dokumenty, které vyhovují všem dotazům uvedeným jako parametry operátoru. Operátor and podporuje několik různých typů vážení dokumentů. Standardně přiřazuje tento operátor dokumentům nejmenší váhu vrácenou jeho poddotazy. Varianta and/c přiřadí všem dokumentům konstantní váhu 1.00, stejně jako operátor all. Varianta and/w vypočítá výslednou váhu na základě skóre všech poddotazů. Výpočet je založen na stejném algoritmu jako operátor best. Varianta and/s zakládá výpočet váhy dokumentu na součtu výskytů jednotlivých poddotazů. Varianta and/l využívá algoritmu CLucene pro odvození váhy dokumentů. 24

Striktní zápis.and ( dotaz1,, dotazn ).and/w ( dotaz1,, dotazn ).and/l ( dotaz1,, dotazn ).and/s ( dotaz1,, dotazn ).and/c ( dotaz1,, dotazn ) <and> ( dotaz1,, dotazn ) <and/w> ( dotaz1,, dotazn ) <and/l> ( dotaz1,, dotazn ) <and/s> ( dotaz1,, dotazn ) <and/c> ( dotaz1,, dotazn ) Infix notace dotaz1 and dotaz2 dotaz1.and dotaz2 dotaz1 <and> dotaz2 Modifikátory - Příklady:.and( mezinárodní, aféra ) mezinárodní and aféra.and/w( vlastník, firma ) Operátor any Popis Vybere dokumenty, které vyhovují alespoň jednomu z dotazů uvedených jako parametry operátoru. Na rozdíl od operátoru or tento operátor přiřadí všem vyhovujícím dokumentům váhu 1.00. Díky tomu je jeho vyhodnocení ve fulltextovém jádru výrazně rychlejší. Striktní zápis.any ( dotaz1,, dotazn ) <any> ( dotaz1,, dotazn ) 25

Infix notace Modifikátory dotaz1.any dotaz2 dotaz1 <any> dotaz2 many Změní vážení operátoru tak, že přiřadí dokumentům nejvyšší váhu vrácenou jeho poddotazy. Příklady:.any( modrá, červená, zelená, žlutá ) modrá.any červená.any zelená.any žlutá.many.any( první, druhý, třetí ) Operátor best Popis Vybere dokumenty, které vyhovují alespoň jednomu z dotazů uvedených jako parametry operátoru. Jednotlivým dokumentům přiřadí skóre v závislosti na počtu poddotazů, kterým daný dokument vyhovuje, a na jejich skóre. Nejvyšší váhu tak dostanou dokumenty, které vyhovují největšímu počtu poddotazů s co možná nejvyšší váhou. Striktní zápis.best ( dotaz1,, dotazn ) <best> ( dotaz1,, dotazn ) Infix notace Zjednodušený zápis dotaz1.best dotaz2 dotaz1 <best> dotaz2 dotaz1, dotaz2 Modifikátory - Příklady:.best( modrá, červená, zelená, žlutá ) modrá, červená, zelená, žlutá 26

Operátor contains Popis Striktní zápis Operátor contains vybere dokumenty, které v daném poli obsahují uvedenou hodnotu, která může být zadaná bez ohledu na velikost písmen. Vyhodnocení operátoru se liší v závislosti na tom, zda je pole tokenizované (tokenizace je vysvětlena v příručce Tovek: Fulltextové jádro, Příručka administrátora). Pro tokenizovaná pole se operátor contains vyhodnotí stejně jako operátor word. Pro netokenizovaná pole vybere operátor contains dokumenty, pro které má dané pole uvedenou hodnotu. V tomto případě musí být zadaná celá hodnota pole, která, v případě že obsahuje mezery, musí být uzavřena do dvojitých uvozovek, jednoduchých uvozovek nebo zpětných jednoduchých uvozovek. Jméno pole nezávislé na velikosti písmen. jméno_pole.contains hodnota jméno_pole <contains> hodnota Infix notace - Modifikátory case Modifikátor case způsobí, že při vyhodnocování bude brána na zřetel velikost písmen uvedených v hodnotě. To, zda se opravdu najde pouze přesná podoba hodnot, závisí na konfiguraci pole, ve kterém se hledá, neboť každé pole nemusí obsahovat v indexu informace o velikosti písmen ve svých hodnotách. Příklady: oblast.contains "Regionální deníky - Olomoucký a Zlínský kraj".case titulek.contains Radnice Operátor ends Popis Operátor ends vybere dokumenty, které v daném poli obsahují hodnotu, která končí zadaným řetězcem bez ohledu na velikost písmen. Vyhodnocení operátoru se liší v závislosti na tom, zda je pole tokenizované (tokenizace je vysvětlena v příručce Tovek: Fulltextové jádro, Příručka administrátora). 27