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í

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

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

Algoritmizace a programování

Programovací jazyk Pascal

Úvod do filtrace, Quick filtr

PRODUKTY. Tovek Tools

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

PRODUKTY. Tovek Tools

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

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:

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

Začínáme s Tovek Tools

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

NEJVYŠŠÍ SPRÁVNÍ SOUD

Tabulkový procesor. Základní rysy

Kódy pro formát čísla

Funkce. Definiční obor a obor hodnot

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

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

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í:

Depozitář 1 struktura a nastavení

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

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

4.2 Syntaxe predikátové logiky

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

Použití filtrů v Museionu

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á.

HROMADNÉ ÚPRAVY NAJÍT A NAHRADIT

Ř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)

Internetové vyhledávače

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

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

Profesis KROK ZA KROKEM 2

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

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

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

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í

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

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

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

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

DATABÁZE MS ACCESS 2010

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

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

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

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.

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

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

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

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.

Matematika B101MA1, B101MA2

POUŽITÍ DOTAZOVACÍHO JAZYKU PQF V INTERPI

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

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

Algoritmizace a programování

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

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

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

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

0.1 Úvod do matematické analýzy

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

PRODUKTY Tovek Server 6

Espacenet

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

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

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky

Základy algoritmizace. Pattern matching

Microsoft. Word. Styly použití a definování. Mgr. Jan Veverka Střední odborná škola sociální Evangelická akademie

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

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

Textové, datumové a časové funkce

přetížení operátorů (o)

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.

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

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.

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

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

Matematika I (KMI/PMATE)

Matematika (CŽV Kadaň) aneb Úvod do lineární algebry Matice a soustavy rovnic

MODUL BIBLIOGRAFIE ASPI, a. s. 2006

MAXScript výukový kurz

Párování zařízení Bluetooth. Uživatelská příručka

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

0.1 Úvod do lineární algebry

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

Emise ze stacionárních zdrojů

Nastavení zabezpečení

Struktura seminární práce

Průvodce aplikací FS Karta

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

Přednáška 7. Celočíselná aritmetika. Návratový kód. Příkazy pro větvení výpočtu. Cykly. Předčasné ukončení cyklu.

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í

Rozšíření ksh vůči sh při práci s proměnnými

RELACE, OPERACE. Relace

10. Soustavy lineárních rovnic, determinanty, Cramerovo pravidlo

Transkript:

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

Tovek Dotazovací jazyk verze 6.1 a vyšší

Copyright Copyright 1996-2011 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í. ovaný 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 Úvod do dotazovacího jazyka... 7 Základní pojmy a jejich vztah k dotazovacímu jazyku... 7 Přehled operátorů... 8 Pojmové operátory... 8 Konceptuální operátory... 9 Poziční operátory... 10 Relační operátory... 10 Pokročilé operátory... 11 Přehled modifikátorů... 11 Syntaxe dotazovacího jazyka... 13 Striktní zápis dotazů... 13 Zjednodušený zápis dotazů... 14 Prefix notace operátorů... 18 Infix notace operátorů... 18 Koeficient váhy operátorů... 20 Pojmenované části dotazu... 21 Operátory a modifikátory... 23 Operátor all... 23 Operátor and, and/w, and/l, and/s, and/c... 23 Operátor any... 25 Operátor best... 25 Operátor contains... 26 Operátor ends... 27 Operátory field a filter... 28 Operátor freetext... 28 Operátor in... 29 Operátor like... 30 Operátor matches... 30 Operátor near, near/w, near/c, near/m... 31 Operátor or, or/w, or/l, or/s, or/c... 33 Operátor paragraph... 34 Operátor phrase... 35 Operátor range... 35 Operátor sentence... 36 Operátor soundex... 37 Operátor starts... 38 Operátor stem... 38 Operátor substring... 40 Operátor thesaurus... 40 Operátor topic... 41 Operátor typo/n... 42 5

Obsah Operátor wildcard... 43 Operátor word... 44 Operátory!=, <, <=, =, >, >=... 45 Modifikátor case... 47 Modifikátor many... 47 Modifikátor order... 48 Modifikátor not... 48 Modifikátor lang/id... 48 6

Úvod do dotazovacího jazyka Úvod do dotazovacího jazyka Tato příručka popisuje dotazovací jazyk, 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 pojem operátor 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. Konkrétní slovo nebo množina slov, které se hledají nebo které slouží jako parametry nadřízeného operátoru. Operátory slouží k definici základních dotazů nebo spojují několik dotazů dohromady a definují podmínky jejich vyhodnocení. Upravuje význam modifikované části dotazu. váha koeficient váhy jazyk dotazu pole dotazu pojmenování dotazu Váha je číselný údaj definující relevanci dokumentu k danému dotazu. 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>. 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. 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. Pojmenování dotazu nebo jeho částí slouží k definování témat, případně ke zjednodušení zápisu dotazu. 7

Úvod do dotazovacího jazyka infix notace prefix notace zjednodušený zápis dotazu speciální znaky poddotaz Zápis dotazu, při kterém se operátor nachází mezi jeho parametry. Zápis dotazu, při kterém se operátor nachází před jeho parametry, které jsou uzavřené v závorkách. Zápis dotazu, při kterém je možné vynechat pojmové operátory. 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 *+?. Dotaz, uvedený jako parametr operátoru. 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 stem Slouží k vyhledání dokumentů, které obsahují jeden nebo více výskytů daného pojmu v zadaném tvaru. Umožňuje vyhledat dokumenty obsahující uvedený pojem v jakémkoli jeho mluvnickém tvaru. 8

Úvod do dotazovacího jazyka wildcard typo/n thesaurus soundex range 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 or all any 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 způsobů vážení výsledků. 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ší. 9

Úvod do dotazovacího jazyka 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 in 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ů. Operátor in definuje v jaké části dokumentu, případně v jakém poli se má dotaz vyhodnocovat. 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 matches starts substring Umožňuje nalézt dokumenty, které v daném poli obsahují daný řetězec. 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 10

Úvod do dotazovacího jazyka ends 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 freetext like 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. Najde dokumenty podobné uvedenému dokumentu. Přehled modifikátorů Modifikátory upravují nebo upřesňují význam operátorů. Dotazovací jazyk obsahuje následující modifikátory: case 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 11

Úvod do dotazovacího jazyka jednotlivých písmen. many not order lang/id [číslo] [jméno] 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. 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. 12

Syntaxe dotazovacího jazyka 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) 13

Syntaxe dotazovacího jazyka 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` ) 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 Vyhledání dokumentů obsahujících libovolný tvar pojmu aféra s vážením zahrnujícím četnost daného pojmu v dokumentu. Striktní zápis.many.stem( aféra ) Zjednodušený zápis 'aféra' `aféra` aféra 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 14

Syntaxe dotazovacího jazyka lomítkem: `'"<>()[]{},=\*+? Úkol č. 2 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. Striktní zápis.many.word( aféra ) Zjednodušený zápis "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 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. Striktní zápis.case.many.stem( Aféra ) Zjednodušený zápis.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: `'"<>()[]{},=\*+? Úkol č. 4 Vyhledání dokumentů obsahujících pojmy vyhovující regulárnímu výrazu afér* 15

Syntaxe dotazovacího jazyka Striktní zápis.many.wildcard( afér* ) Zjednodušený zápis 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 obsahovat ani mezery ani následující speciální znaky, aniž by byly uvedeny zpětným lomítkem: `'"<>()[]{},=\*+? 16

Syntaxe dotazovacího jazyka Ú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" Úkol č. 8 Vyhledání dokumentů vyhovujících uloženému tématu témaaféra. Striktní zápis.topic( téma-aféra ) 17

Syntaxe dotazovacího jazyka Zjednodušený zápis {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ů 18 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ý 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 )) Syntaxe dotazovacího jazyka 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: š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 19

Syntaxe dotazovacího jazyka 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á Koeficient váhy operátorů 20 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

Syntaxe dotazovacího jazyka 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 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 ) 21

Syntaxe dotazovacího jazyka ["čí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} ) ) 22

Operátory a modifikátory Operátory a modifikátory Operátor all 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ší. 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..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 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, 23

Operátory a modifikátory 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ů. 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.and( mezinárodní, aféra ) mezinárodní and aféra.and/w( vlastník, firma ) 24

Operátor any Operátory a modifikátory 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 ) 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..any( modrá, červená, zelená, žlutá ) modrá.any červená.any zelená.any žlutá.many.any( první, druhý, třetí ) Operátor best 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 dotaz1.best dotaz2 dotaz1 <best> dotaz2 25

Operátory a modifikátory Zjednodušený zápis dotaz1, dotaz2 Modifikátory -.best( modrá, červená, zelená, žlutá ) modrá, červená, zelená, žlutá Operátor contains 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. 26

Operátory a modifikátory oblast.contains "Regionální deníky - Olomoucký a Zlínský kraj".case titulek.contains Radnice Operátor ends Striktní zápis 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). Tento operátor nelze použít pro tokenizovaná pole. Pro netokenizovaná pole vybere operátor ends dokumenty, pro které má dané pole hodnotu končící uvedeným řetězcem. V tomto případě se bere v potaz celá hodnota, a tak zadaný řetězec může obsahovat i mezery. V takovém případě ale musí být uzavřen do dvojitých uvozovek, jednoduchých uvozovek nebo zpětných jednoduchých uvozovek. Jméno pole je nezávislé na velikosti písmen. jméno_pole.ends hodnota jméno_pole <ends> 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 v uvedeném řetězci. To, zda se opravdu bude uvažovat pouze přesná podoba řetězce, 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. titulek.ends nice.case oblast.ends "Zlínský kraj" 27

Operátory a modifikátory Operátory field a filter Tyto operátory jsou používány spolu s relačními operátory především při tvorbě témat. Striktní zápis.field ( jméno_pole relační_operátor hodnota ) <field> ( jméno_pole relační_operátor hodnota ).filter ( jméno_pole relační_operátor hodnota ) <filter> ( jméno_pole relační_operátor hodnota ) Infix notace - Modifikátory -.field( titulek.contains prezident ).filter( datum > today-1 ) Operátor freetext Vyhledá dokumenty na základě uvedeného volného textu a přiřadí jim váhu podle jejich podobnosti vzhledem k tomuto textu. Volný text je třeba zadat ve dvojitých uvozovkách, jednoduchých uvozovkách nebo zpětných jednoduchých uvozovkách a může obsahovat libovolné znaky, pouze před použitými uvozovkami musí být uvedeno zpětné lomítko. Operátor freetext vyextrahuje z textu dotazu nějčastěji se vyskytující slova a složí z nich strukturovaný dotaz, který vyhledá dokumenty obsahující co možná nejvíce těchto slov v co nejmenší vzdálenosti od sebe. Striktní zápis.freetext ( "Volný text." ).freetext ( 'Volný text.' ).freetext ( `Volný text.` ) <freetext> ( "Volný text." ) <freetext> ( 'Volný text.' ) 28

Operátory a modifikátory <freetext> ( `Volný text.` ) Infix notace - Modifikátory -.freetext( 'Na Starou radnici láká stálá expozice Obrazy Jana Pinkavy, malíře starých Hranic.' ).freetext( "\"Ahoj\", zavolal." ) Operátor in Striktní zápis Tento operátor slouží k definici pole případně zóny dokumentu, na kterou bude aplikován příslušný dotaz. Není-li operátorem in určeno jinak, vyhodnocuje se každý dotaz proti standardnímu poli obsahujícímu text dokumentu. Toto pole je uvedeno v konfiguraci indexu. Operátorem in lze toto pole pro celý nebo část dotazu změnit. Navíc je možné pomocí operátoru in specifikovat více než jedno pole, ve kterém se má hledat. V případě, že je takovýchto polí uvedeno více, budou nalezeny dokumenty, které vyhovují dotazu alespoň v jednom poli. dotaz.in jméno_pole dotaz.in (jméno_pole1,, jméno_polen) dotaz <in> jméno_pole dotaz <in> (jméno_pole1,, jméno_polen) Infix notace - Modifikátory -.and( pilot, voják ).in titulek 29

Operátory a modifikátory.and( pilot, voják ).in (titulek, doc) Operátor like Tento operátor slouží k vyhledání dokumentů podobných uvedenému dokumentu. Klíč dokumentu, pokud neobsahuje mezery, může být uveden bez uvozovek s tím, že každému speciálnímu znaku předchází zpětné lomítko. V opačném případě je nutné zadat klíč v dvojitých uvozovkách, jednoduchých uvozovkách nebo zpětných jednoduchých uvozovkách. Aktuální verze nepodporuje tento operátor. Striktní zápis.like( klíč_dokumentu ) <like>( klíč_dokumentu ) Infix notace - Modifikátory -.like( 'doc2215890146' ) Operátor matches Operátor matches vybere dokumenty, které v daném poli obsahují hodnotu, která odpovídá uvedené hodnotě. Tato hodnota může být zadána 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). Tento operátor nelze použít pro tokenizovaná pole. Pro netokenizovaná pole vybere operátor matches dokumenty, pro které má dané pole hodnotu odpovídající zadané hodnotě. 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. 30

Uvedená hodnota může obsahovat zástupné znaky:? jeden libovolný znak * - žádný nebo libovolný počet znaků. Operátory a modifikátory Při standardní konfiguraci indexu nemohou být zástupné znaky uvedeny na prvním místě. Jméno pole je nezávislé na velikosti písmen. Striktní zápis jméno_pole.matches hodnota jméno_pole <matches> 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. oblast.matches televi*.case titulek.matches Člověk* Operátor near, near/w, near/c, near/m Tento operátor vybere dokumenty, které vyhovují všem jeho poddotazům a jejichž výskyty se nacházejí do určité maximální vzdálenosti od sebe. U každé z variant tohoto operátoru je možné zadat maximální vzdálenost, která se má brát v potaz. Tato vzdálenost se udává celým číslem a znamená počet slov. V případě, že není žádná maximální vzdálenost uvedena, použije se nastavení daného indexu, přičemž standardní hodnota je 1024. Operátor near podporuje několik různých typů vážení dokumentů. Není-li žádný typ vážení uvedený, pak je chování operátoru řízeno konfigurací a standardně váží jako jeho varianta near/m. Varianta near/m odvozuje výpočet váhy dokumentu od nejmenší vzdálenosti výskytů všech jeho poddotazů, přičemž čím menší je 31

Operátory a modifikátory tato vzdálenost, tím vyšší je přiřazená váha. Varianta near/c přiřadí všem dokumentům konstantní váhu 1.00. Tato varianta je, co se týká vyhodnocování, nejefektivnější. Varianta near/w vypočítá výslednou váhu na základě všech vzdáleností výskytů všech poddotazů. Tímto způsobem je výsledná váha ovlivněna i celkovým počtem výskytů poddotazů v dokumentu. Striktní zápis.near ( dotaz1,, dotazn ).near/m ( dotaz1,, dotazn ).near/c ( dotaz1,, dotazn ).near/w ( dotaz1,, dotazn ).near/číslo ( dotaz1,, dotazn ).near/mčíslo ( dotaz1,, dotazn ).near/cčíslo ( dotaz1,, dotazn ).near/wčíslo ( dotaz1,, dotazn ) <near> ( dotaz1,, dotazn ) <near/m> ( dotaz1,, dotazn ) <near/c> ( dotaz1,, dotazn ) <near/w> ( dotaz1,, dotazn ) <near/číslo> ( dotaz1,, dotazn ) <near/mčíslo> ( dotaz1,, dotazn ) <near/cčíslo> ( dotaz1,, dotazn ) <near/wčíslo> ( dotaz1,, dotazn ) infix notace Modifikátory dotaz1.near dotaz2 dotaz1.near/[mcw][číslo] dotaz2 dotaz1 <near> dotaz2 dotaz1 <near/[mcw][číslo]> dotaz2 order Tento modifikátor způsobí, že se budou brát v úvahu pouze výskyty v dokumentu, které odpovídají pořadí poddotazů. 32

Operátory a modifikátory.near( firma, krach ) firma.near krach.order.near/w5( státní, organizace ) státní.order.near/w5 organizace Operátor or, or/w, or/l, or/s, or/c Vybere dokumenty, které vyhovují alespoň jednomu dotazu uvedenému jako parametr operátoru. Operátor or podporuje několik různých typů vážení dokumentů. Standardně přiřazuje tento operátor dokumentům nejvyšší váhu vrácenou jeho poddotazy. Varianta or/c přiřadí všem dokumentům konstantní váhu 1.00, stejně jako operátor any, a je co do zpracování výrazně rychlejší než ostatní varianty tohoto operátoru. Varianta or/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 or/s zakládá výpočet váhy dokumentu na součtu výskytů jednotlivých poddotazů. Varianta or/l využívá algoritmu CLucene pro odvození váhy dokumentů. Striktní zápis.or ( dotaz1,, dotazn ).or/w ( dotaz1,, dotazn ).or/l ( dotaz1,, dotazn ).or/s ( dotaz1,, dotazn ).or/c ( dotaz1,, dotazn ) <or> ( dotaz1,, dotazn ) <or/w> ( dotaz1,, dotazn ) <or/l> ( dotaz1,, dotazn ) <or/s> ( dotaz1,, dotazn ) <or/c> ( dotaz1,, dotazn ) 33

Operátory a modifikátory Infix notace dotaz1 or dotaz2 dotaz1.or dotaz2 dotaz1 <or> dotaz2 Modifikátory -.or( modrá, oranžová ) modrá or oranžová.or/w( spořitelna, banka ) Operátor paragraph Tento operátor vybere dokumenty, které vyhovují všem jeho poddotazům a jejichž výskyty se nacházejí do konfigurací definované vzdálenosti od sebe. Standardně je tato vzdálenost 64 slov. Operátor paragraph je tedy ve standardním případě shodný s operátorem near/64. Striktní zápis.paragraph ( dotaz1,, dotazn ) <paragraph> ( dotaz1,, dotazn ) Infix notace Modifikátory dotaz1.paragraph dotaz2 dotaz1 <paragraph> dotaz2 order Tento modifikátor způsobí, že se budou brát v úvahu pouze výskyty v dokumentu, které odpovídají pořadí poddotazů..paragraph( firma, krach ) firma.paragraph krach 34

Operátor phrase Operátory a modifikátory Operátor phrase najde všechny dokumenty obsahující danou frázi. Jednotlivá slova hledané fráze jsou specifikována poddotazy operátoru a je možné definovat více než jedno slovo pro konkrétní pozici, např. pomocí operátoru wildcard, přímým výčtem pomocí operátoru or, určením rozsahu pomocí range a další. Striktní zápis.phrase ( dotaz1,, dotazn ) <phrase> ( dotaz1,, dotazn ) Infix zápis Zjednodušený zápis Modifikátory dotaz1.phrase dotaz2 dotaz1 <phrase> dotaz2 Zjednodušený zápis lze využít, jsou-li všechny poddotazy pouze typu stem, word nebo wildcard. V tomto případě stačí napsat jejich zkrácené podoby za sebou. Poddotazy se stejným typem lze zahrnout pod jedny společné uvozovací znaky: "škola" "hrou" je stejné jako "škola hrou" 'vlastník' 'firma' je stejné jako 'vlastník firma' many Tento modifikátor způsobí, že nalezeným dokumentům bude přiřazena váha na základě počtu výskytů fráze..phrase( školní, osnova ) školní.phrase osnova školní osnova.phrase( "škola", "hrou" ) "škola" "hrou" "škola hrou".phrase( nový, vlastník,.or( vozidlo, firma)) Operátor range Operátor range najde všechny dokumenty obsahující hodnotu 35

Operátory a modifikátory z uvedeného rozsahu včetně hraničních hodnot v aktuálním poli. Porovnávání hodnot pole závisí na typu pole a je shodné s operátory <= a >=. Striktní zápis.range( hodnota_od, hodnota_do ) <range>( hodnota_od, hodnota_do ) Infix zápis - Modifikátory case - Modifikátor case způsobí, že při vyhodnocování bude brána na zřetel velikost písmen v uvedeném pojmu. Toto se týká pouze dotazů vztahujících se k textovým polím..range( today-1, today ).range( a, azzzzzzz ) Operátor sentence Tento operátor vybere dokumenty, které vyhovují všem jeho poddotazům a jejichž výskyty se nacházejí do konfigurací definované vzdálenosti od sebe. Standardně je tato vzdálenost 16 slov. Operátor sentence je tedy ve standardním případě shodný s operátorem near/16. Striktní zápis.sentence ( dotaz1,, dotazn ) <sentence> ( dotaz1,, dotazn ) Infix notace Modifikátory dotaz1.sentence dotaz2 dotaz1 <sentence> dotaz2 order Tento modifikátor způsobí, že se budou brát v úvahu pouze výskyty v dokumentu, které odpovídají pořadí poddotazů. 36

Operátory a modifikátory.sentence( vlastník, firma ) vlastník.sentence firma Operátor soundex Operátor soundex umožňuje vyhledat dokumenty obsahující podobně znějící pojmy jako uvedený pojem v jakémkoli jejich mluvnickém tvaru. Určení vyhledaných tvarů závisí na aktuálním nastaveném jazyce dotazu, přičemž v případě, že daný jazyk nepodporuje tuto funkcionalitu, budou se hledat pouze mluvnické tvary zadaného pojmu. Není-li v dotazu určeno jinak, používá se jazyk indexu, ve kterém se dotaz vyhodnocuje. V případě, že se daný dotaz vyhodnocuje proti více indexům najednou, pak se podobně znějící pojmy a jejich mluvnické tvary určí pro každý index zvlášť. Dotazovací jazyk umožňuje přiřadit konkrétní jazyk určité části dotazu pomocí modifikátoru lang/id. Nastavení jazyka pomocí tohoto modifikátoru má přednost oproti nastavení indexu. Pojem uvedený jako parametr operátoru nesmí obsahovat mezery, a jestliže není uzavřený ve dvojitých uvozovkách, jednoduchých uvozovkách nebo zpětných jednoduchých uvozovkách, musí všem speciálním znakům předcházet zpětné lomítko: `'"<>()[]{},=\/ Tento operátor přiřadí každému nalezenému dokumentu váhu 1.00. Striktní zápis.soundex( hodnota ) <soundex>( hodnota ) Infix notace - Modifikátory many Tento modifikátor způsobí, že nalezeným dokumentům bude přiřazena váha na základě počtu výskytů hledaných pojmů v daném dokumentu..many.soundex( podíl ).soundex( firma ) 37

Operátory a modifikátory Operátor starts Striktní zápis Operátor starts vybere dokumenty, které v daném poli obsahují hodnotu, která začíná 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). Tento operátor nelze použít pro tokenizovaná pole. Pro netokenizovaná pole vybere operátor starts dokumenty, pro které má dané pole hodnotu začínající uvedeným řetězcem. V tomto případě se bere v potaz celá hodnota, a tak zadaný řetězec může obsahovat i mezery. V takovém případě ale musí být uzavřen 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.starts hodnota jméno_pole <starts> 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 v uvedeném řetězci. To, zda se opravdu bude uvažovat pouze přesná podoba řetězce, 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. oblast.starts "Regionální deníky".case titulek.starts Ors Operátor stem Operátor stem umožňuje vyhledat dokumenty obsahující uvedený pojem v jakémkoli jeho mluvnickém tvaru. Určení vyhledaných tvarů závisí na aktuálním nastaveném jazyce dotazu. Není-li v dotazu určeno jinak, používá se jazyk indexu, ve kterém se dotaz vyhodnocuje. V případě, že se daný dotaz vyhodnocuje proti více 38

Operátory a modifikátory indexům najednou, pak se mluvnické tvary pojmu určí pro každý index zvlášť. Dotazovací jazyk umožňuje zadat konkrétní jazyk pro určitou část dotazu pomocí modifikátoru lang/id. Nastavení jazyka pomocí tohoto modifikátoru má přednost oproti nastavení indexu. Pojem uvedený jako parametr operátoru nesmí obsahovat mezery, a jestliže není uzavřený ve dvojitých uvozovkách, jednoduchých uvozovkách nebo zpětných jednoduchých uvozovkách, pak musí všem speciálním znakům předcházet zpětné lomítko: `'"<>()[]{},=\/ Tento operátor přiřadí každému nalezenému dokumentu váhu 1.00. Striktní zápis.stem( hodnota ) <stem>( hodnota ) Infix notace - Zjednodušený zápis Modifikátory Zjednodušený zápis tohoto operátoru automaticky uplatňuje modifikátor many a váží dokumenty podle počtu výskytů daného pojmu. V případě první varianty nesmí daná hodnota navíc obsahovat znaky * a?, které jsou indikátorem zjednodušeného zápisu pro operátor wildcard: hodnota `hodnota` 'hodnota' many Tento modifikátor způsobí, že nalezeným dokumentům bude přiřazena váha na základě počtu výskytů uvedeného pojmu a jeho mluvnických tvarů..many.stem( vlastník ) vlastník.stem( firma ) 39

Operátory a modifikátory Operátor substring Striktní zápis Operátor substring vybere dokumenty, které v daném poli obsahují hodnotu, která obsahuje zadaný řetězec 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). Tento operátor nelze použít pro tokenizovaná pole. Pro netokenizovaná pole vybere operátor substring dokumenty, pro které má dané pole hodnotu obsahující uvedený řetězec. V tomto případě se bere v potaz celá hodnota, a tak zadaný řetězec může obsahovat i mezery. V takovém případě ale musí být uzavřen 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.substring hodnota jméno_pole <substring> 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 v uvedeném řetězci. To, zda se opravdu bude uvažovat pouze přesná podoba řetězce, 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. oblast.substring "Olomoucký a Zlínský".case titulek.substring hotov Operátor thesaurus Operátor thesaurus umožňuje vyhledat dokumenty obsahující daný pojem nebo jeho příbuzné pojmy v jakémkoli jejich mluvnickém tvaru. Určení vyhledaných tvarů závisí na aktuálním nastaveném jazyce dotazu, přičemž v případě, že pro daný jazyk nejsou k dispozici příslušné slovníky, budou se hledat pouze mluvnické 40

tvary zadaného pojmu. Operátory a modifikátory Není-li v dotazu určeno jinak, používá se jazyk indexu, ve kterém se dotaz vyhodnocuje. V případě, že se daný dotaz vyhodnocuje proti více indexům najednou, pak se příbuzné pojmy a jejich mluvnické tvary určí pro každý index zvlášť. Dotazovací jazyk umožňuje zadat konkrétní jazyk pro určitou část dotazu pomocí modifikátoru lang/id. Nastavení jazyka pomocí tohoto modifikátoru má přednost oproti nastavení indexu. Pojem uvedený jako parametr operátoru nesmí obsahovat mezery, a jestliže není uzavřený ve dvojitých uvozovkách, jednoduchých uvozovkách nebo zpětných jednoduchých uvozovkách, pak musí všem speciálním znakům předcházet zpětné lomítko: `'"<>()[]{},=\/ Tento operátor přiřadí každému nalezenému dokumentu váhu 1.00. Striktní zápis.thesaurus( hodnota ) <thesaurus>( hodnota ) Infix notace - Modifikátory many Tento modifikátor způsobí, že nalezeným dokumentům bude přiřazena váha na základě počtu výskytů hledaných pojmů v daném dokumentu..many.thesaurus( ředitel ).thesaurus( "podíl" ) Operátor topic Tento operátor vyhledá dokumenty na základě uloženého tématu nebo lokálně pojmenované části dotazu. Parametr operátoru uvádí jméno tématu, které se má na místě operátoru vyhodnotit. V případě, že jméno tématu neobsahuje mezery, může být uvedeno bez dvojitých uvozovek, jednoduchých uvozovek nebo zpětných jednoduchých uvozovek, ale každému speciálnímu znaku musí předcházet zpětné lomítko. `'"<>()[]{},=\/ 41

Operátory a modifikátory Témata, jejichž jména obsahují mezeru, musí být uvedena ve dvojitých uvozovkách, jednoduchých uvozovkách nebo zpětných jednoduchých uvozovkách. Lokálně pojmenované části mají v případě konfliktu jmen s uloženými tématy přednost. Jméno uloženého tématu lze napsat ve dvou podobách. Zkrácená verze obsahuje pouze jméno tématu, plná verze se skládá ze jména sady, do kterého téma patří, a vlastního jména tématu: sada:jméno_tématu Tímto způsobem lze odlišit od sebe témata z různých sad se stejným jménem. V rámci jedné sady témat musí mít každé téma jednoznačné pojmenování. Striktní zápis.topic( jméno_tématu ) <topic>( jméno_tématu ) Infix notace - Zjednodušený zápis { jméno_tématu } Modifikátory -.topic ( korupce ) { korupce } Operátor typo/n Operátor typo umožňuje vyhledat dokumenty obsahující pojmy, které se liší od zadaného pojmu maximálně o zadaný počet chyb. Chybou se zde rozumí změna týkající se jedno písmena, tj. záměna písmena za jiné, vynechání písmena anebo vložení jiného písmena. Standardně se nebere v potaz velikost písmen. Operátor typo lze použít i bez uvedení akceptovaného rozdílu, pak se jeho vyhodnoceni řídí konfigurací indexu, kde je standardně nastaven rozdíl 2 překlepů. Pojem uvedený jako parametr operátoru nesmí obsahovat mezery, a 42

Operátory a modifikátory jestliže není uzavřený ve dvojitých uvozovkách, jednoduchých uvozovkách nebo zpětných jednoduchých uvozovkách, pak musí všem speciálním znakům předcházet zpětné lomítko: `'"<>()[]{},=\/ Tento operátor přiřadí každému nalezenému dokumentu váhu 1.00. Striktní zápis.typo( hodnota ).typo/číslo( hodnota ) <typo>( hodnota ) <typo/číslo>( hodnota ) Infix notace - Modifikátory many Tento modifikátor způsobí, že nalezeným dokumentům bude přiřazena váha na základě počtu výskytů hledaných pojmů v daném dokumentu. case - Modifikátor case způsobí, že při vyhodnocování bude brána na zřetel velikost písmen v uvedeném řetězci..many.typo( ředidel ).typo/2( "fimra" ) Operátor wildcard Operátor wildcard umožňuje vyhledat dokumenty obsahující pojmy, které vyhovují zadanému regulárnímu výrazu. Pojem uvedený jako parametr operátoru nesmí obsahovat mezery, a jestliže není uzavřený ve dvojitých uvozovkách, jednoduchých uvozovkách nebo zpětných jednoduchých uvozovkách, musí všem speciálním znakům předcházet zpětné lomítko: `'"<>()[]{},=\/ Dotazovací jazyk podporuje v regulárních výrazech následující dva zástupné znaky, které se při standardní konfiguraci fulltextového jádra nesmí vyskytovat na první pozici:? jeden libovolný znak 43