Article: AN0001627Updated: 21.09.2018
Objekt provádí parsování zadaného textu. Text rozdělí na jednotlivé elementy oddělené mezerou. Pro elementy je možné zadat negaci (znakem mínus) nebo skupiny (dvojtečkou před textem). Negace se používá pro vyloučení výsledků hledání obsahujících uvedený text. Skupiny se používají pro umožnění uživateli zadat alternativní názvů, které znamenají totéž (např. téma, theme, thema...).
Výsledek parsování je vrácen v kolekci objektů, představující jednotlivé elementy.
Jednotlivé elementy jsou odděleny mezerou. Pokud je třeba zadat text s mezerou, pak jej vložte do uvozovek.
Negace se zadává znakem mínus před textem (bez mezery mezi minus a textem).
Skupinu zadejte ve formátu: nazev_skupiny:text
Název |
Popis |
void AddGroup(string groupCode, string groupAliases) |
Metoda přidá definici skupiny. |
FindItemList Parse(string text) |
Funkce rozparsuje text a vrátí výsledné elementy. |
V metodě AddGroup je parametr groupCode vrácen ve výsledcích pársování. Parametr groupAliases je název skupiny, který je hledán v parsovaném textu. Více aliasů může mít stejný kód skupiny, ale jeden alias nemůže být použit u více kódů skupiny.
Příklad
Příklady textu pro pársování:
praha
Vrátí jeden element.
praha maraton
Vrátí dva elementy.
praha -maraton
Vrátí dva elementy, kde druhý je označen jako negace.
"ahoj světe" -maraton
Vrátí dva elementy, první s textem ahoj světe, druhý s textem maraton, který je označen jako negace.
praha kat:k1
Vrátí dva elementy, kde druhý je označen jako skupina kat.
praha tema:t1 -kat:k2 "DB server"
praha tema:t1 -kat:k2 -"DB server"
Vrátí čtyři elementy:
- praha
- skupina tema s textem t1
- negace, skupina kat s textem k2
- text DB server, pro druhý příklad ještě s negací
praha tema:"t1 ufo" -kat:k2 cat:k3 "DB server"
Vrátí pět elementů:
- praha
- skupina tema s textem t1 ufo
- negace, skupina kat s textem k2
- skupina cat s textem k3
- text DB server
Příklad použití skupin pro hledání
Chceme umožnit uživateli vyhledávat záznamy podle určitého sloupce a zároveň mu umožnit zúžit hledání dle klasifikace záznamů v jiném sloupci. To vše přímým prostým zadáním do textového pole bez použití filtrů. Klasifikace je definována ve sloupci téma. Dle jazykové preference uživatelé budou moci zadávat "téma", "tema", "theme", "theme" i zkrácené "t". Pro sjednocení použijeme funkci AddGroup.
AddGroup('tema', 'téma');
AddGroup('tema', 'tema');
AddGroup('tema', 'theme');
AddGroup('tema', 'thema');
AddGroup('tema', 't');
Pokud uživatel bude chtít hledat v kategorii "objectgears" výraz "model", všechny níže uvedené varianty budou interpretovány shodně:
- téma:objectgears model
- tema:objectgears model
- theme:objectgears model
- thema:objectgears model
- t:objectgears model