1. FindParse

    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
×