3.2. Vyhledávání

Vyhledávání entit je možné pomocí speciálních funkcí popsaných pomocí REST API. Jedná se o funkce dostupné v části /search.

Funkce pro vyhledání umožňuje zvolit způsob vyhledání „SearchType“. Je možné zvolit způsob „EXACT“, kdy je dohledáváno přesně dle zadaných podmínek pomocí databázového dohledání a výsledky jsou seřazeny abecedně. Nebo je možné zvolit způsob „FULLTEXT“, který dohledává v indexových souborech včetně transliterované podoby a výsledky jsou řazeny dle priority dohledání. Výchozím způsobem pro vyhledání, pokud není zadán, je „FULLTEXT“.

Funkce pro vyhledávání umožňuje jako vyhledávací kritéria specifikovat:

  • vybrané třídy či podtřídy

  • určitý stav entity (nová, schválená, nahrazená)

  • hodnotu prvků popisu s možností omezení na typy prvků popisu

Funkce podporuje stránkování výsledků a pomocí parametrů se nastavuje počet záznamů na stránku a číslo stránky (stránkováno od 1). Součástí vrácených výsledků je vždy celkový počet záznamů.

3.2.1. Příklady vyhledávaných podmínek

Vyhledání přes všechna označení

Cílem je vyhledat obec Hluboká nad Vltavou a to zadáním slova Hluboká a jeho vyhledáním ve všech označeních. Pro vyhledání bude použita serializovaná podoba označení. Způsob vytváření serializované podoby označení je popsán v Označení, textová podoba, entity a jejích částí.

{
  "cond": {
    "condType": "index",
    "name":"DISPLAY_NAME",
    "value": "Hluboká",
    "comparator":"CT_START_WITH"
  }
}

Vyhledání preferovaných označení pro vybranou podtřídu

Cílem je vyhledat obec Hluboká nad Vltavou a to zadáním slova Hluboká a jeho vyhledáním v preferovaných označeních.

Hledání je dále omezeno na podtřídu Administrativně vymezená území a vyhledává se jen ve schválených záznamech.

{
  "types": ["REGION"],
  "state": ["RS_APPROVED"],
  "cond": {
    "condType": "part",
    "partType": "PT_PREF_NAME",
    "cond": {
      "condType": "index",
      "name":"DISPLAY_NAME",
      "value": "Hluboká",
      "comparator":"CT_START_WITH"
    }
  }
}

Vyhledání s omezením na rok narození

Cílem vyhledání je Alexandra Bacha a to pomocí znalosti data narození později než 1800 a jména Bach.

{
  "types": ["REGION"],
  "state": ["RS_NEW","RS_APPROVED"],
  "cond": {
    "condType":"and",
    "conds": [
      {
        "condType":"index",
        "name":"DISPLAY_NAME",
        "value": "Bach",
        "comparator":"CT_CONTAIN"
      },
      {
        "condType":"value",
        "itemTypes":["CRE_DATE"],
        "value": "1800-01-01T00:00:00",
        "comparator":"CT_GTE"
      }
  
    ]
  }
}

Vyhledání s omezením na rozmezí data vzniku a stavu

Cílem vyhledání jsou entity ve stavu nový a schválený s omezením, že datace vzniku obsahuje zadaný časový interval.

{
  "state": [
    "RS_NEW", "RS_APPROVED"
  ],
  "cond": {
    "condType":"part",
    "partType": "PT_CRE",
    "cond": [
      {
        "condType":"value",
        "itemTypes":["CRE_DATE"],
        "value": "1950-01-01T00:00:00-2000-12-31T23:59:59",
        "comparator":"CT_CONTAIN"
      }
    ]
  }
}