===== Zoeken ===== Er kan gezocht worden door te typen in het zoekveld. Een zoekopdracht dient te worden afgesloten met een Enter. Zoekresultaten verschijnen vervolgens in de geselecteerde items. ==== Zoekbereik ==== Let op! Zoeken vindt plaats op:\\ * Alle data binnen het [[Filter]] * Alle data buiten het optionele [[Perspectief en kiezen]]. * Alle zichtbare collecties. * Om ook in de [[https://handleiding.bres.com/doku.php?id=terminologie&s[]=verborgen#verborgen|Verborgen collecties]] te kunnen zoeken dienen deze eerst te worden weergeven. ==== Suggesties ==== Bij het typen in het zoekveld worden ook suggesties weergeven: Interne data: * collectie naam (ook aanklikbaar) * module naam (ook aanklikbaar) * veldnaam (ook aanklikbaar) * Bijvoorbeeld:\\ * ''gebouwen/basisgegevens/deelportefeuille'' Externe locaties (PDOK locatieserver): * adres, straat, woonplaats etc. (BAG data) * kadastrale aanduiding ===== Zoekmethoden ===== Er zijn 2 methodes om te zoeken: * [[#in_alle_velden_methode_1|Methode 1]] is bedoeld om makkelijk en snel een item te vinden. Vaak zullen meerende items gevonden worden waaruit dan gekozen kan worden. * [[#in_specifiek_veld_of_module_methode_2|Methode 2]] is bedoeld om een **lijst** van vergelijkbare items te genereren. Hierna is het bijvoorbeeld mogelijk om door die lijst heen te lopen of de lijst te exporteren. Met beide methoden is het ook mogelijk het [[#zoekopdracht_omkeren|resultaat om te keren]].\\ Met methode 2 is het ook mogelijk om naar [[#veld_is_leeg|lege velden te zoeken]].\\ ==== In alle velden (methode 1) ==== Om door alle velden te zoeken hoeft enkel een waarde ingevoerd te worden gevolg door een enter.\\ Deze waarde mag een [[#getal]], [[#tekst]], of [[#patroon_reguliere_expressie|patroon in de vorm van een reguliere expressie]] zijn.\\ BRES selecteert dan alle items waarvan minstens één veld de tekst of het patroon [[#bevat]] of [[#gelijk aan|gelijk is aan]] het getal. Voorbeelden: * ''stadhuis'' * ''laurier'' (geeft "Laurierstraat", "Lauriergracht", etc.).\\ * ''verkocht'' Voorbeelden met patroon: * ''stadhuis|afstoten'' (geeft zowel "Stadhuis" als "afstoten") * ''(basis|voortgezet )onderwijs'' (geeft zowel "basisonderwijs" als "voortgezet onderwijs") ==== In specifiek veld of module (methode 2) ==== Om te zoeken binnen een specifiek veld of module (groep van velden) moet de invoer achtereenvolgens bestaan uit de volgende delen: * Een pad om specifieke velden te selecteren. (of leeg om in alle velden te zoeken) * Een vergelijkingsteken (zie tabel). * Een [[#getal]], [[#tekst]], of [[#patroon_reguliere_expressie|patroon in de vorm van een reguliere expressie]] om op te zoeken. (of leeg om op [[#veld_is_leeg|lege velden]] te zoeken). Het pad kan bestaan uit 1 tot 3 delen, gescheiden door een schuine streep (/).\\ Elk deel wordt achtereenvolgend via de zoekmethode [[#bevat]] vergeleken met: * De naam van de collectie * De naam van de module * De naam van het veld Bestaat het pad uit drie delen dan word deze vergeleken met de gehele combinatie **collectie/module/veld**.\\ Bestaat het pad uit twee delen dan word deze zowel vergeleken met de combinatie **collectie/module** als met de combinatie **module/veld**.\\ Bestaat het pad uit één deel (m.a.w. er zat helemaal geen schuin streepje in) dan word deze vergeleken met zowel de **collectie**, de **module** en het **veld**.\\ Voorbeelden BRES demo: * ''gebouwen'' zoek in elk veld van de collectie "gebouwen" * ''basisgegevens'' zoek in elk veld van de module "NAW" (van elke collectie) * ''naam'' zoek in velden zoals "naam", straatnaam", "achternaam" etc. * ''^description$'' zoek exact in het veld "description" (dus niet in "namedescription" of "descriptions") * ''units/BASISGEGEVENS/'' zoek in elk veld van de module "BASISGEGEVENS" in de collectie "units" * ''units/BASISGEGEVENS/straatnaam'' zoek in het veld "straatnaam" in de module "NAW" van de collectie "units" * ''BASISGEGEVENS/naam'' zoek in velden zoals "naam", straatnaam", etc. in de module "NAW" (van elke collectie) De [[#zoekmethoden|zoekmethode]] hangt af van het gekozen vergelijkingsteken en of de waarde van het veld een getal of een tekst is. ^vergelijkingsteken (+alternatieven) ^veld is tekst ^veld is getal ^ |**=** |[[#bevat]] |[[#gelijk aan]] | |**!=** |[[#bevat niet]] |[[#niet gelijk aan]] | |**==** |[[#gelijk aan]] |[[#gelijk aan]] | |**<>** |[[#niet gelijk aan]] |[[#niet gelijk aan]] | |**>** |[[#alfabetisch na]] |[[#groter dan]] | |**>=** |[[#alfabetisch na]] of [[#gelijk aan]] |[[#groter dan]] of [[#gelijk aan]] | |**<** |[[#alfabetisch voor]] |[[#kleiner dan]] | |**%%<=%%** |[[#alfabetisch voor]] of [[#gelijk aan]] |[[#kleiner dan]] of [[#gelijk aan]] | |**=?** |[[#veld is leeg]] |[[#veld is leeg]] | |**=*** |[[#veld is niet leeg]] |[[#veld is niet leeg]] | Voorbeelden BRES demo: * ''bvo>1000'' -> alle items met BVO groter dan 1000 * ''deelportefeuille=welzijn'' -> alle items waar deelportefeuille is 'welzijn' * ''deelportefeuille=welzijn|cultuur'' -> alle items waar deelportefeuille is 'welzijn' of 'cultuur' * ''deelportefeuille<>welzijn'' -> alle items waar deelportefeuille is niet gelijk aan 'welzijn' * ''perspectief=?'' -> alle items waar perspectief leeg is * ''perspectief=*'' -> alle items waar perspectief **niet** leeg is ===== Invoer ===== De invoer kan op drie manieren worden geïnterpreteerd: - [[#getal]] - [[#tekst]] - [[##patroon_reguliere_expressie|patroon]] ==== getal of tekst? ==== Belangrijk! Soms is het niet duidelijk of de data waarop wordt gezocht een tekst of een getal is. * Een getalwaarden is te vinden door een zoekterm te voorzien van groter dan en kleiner dan symbolen. Bijvoorbeeld "BVO<>0" * Een tekstwaarde is te vinden door een zoekterm te voorzien van . symbool. Bijvoorbeeld "straat=." ==== getal ==== Getallen met decimalen mogen zowel met een komma (Nederlandse schrijfwijze) of met een punt (Amerikaanse schrijfwijze) worden ingevoerd.\\ Ook scheidingstekens zijn toegestaan, zowel als punten (Nederlandse schrijfwijze) of als komma's (Amerikaanse schrijfwijze).\\ Het kan voorkomen dat een getal op twee manieren kan worden geïnterpreteerd.\\ Bijvoorbeeld: ''1,001'' is "één en één duizendste" in de Nederlandse schrijfwijze maar "duizend en één" in de Amerikaanse.\\ In zulke gevallen bepaalt de huidige taal instelling welke interpretatie gekozen wordt (standaard staat deze op Nederlands) ==== tekst ==== Tekst is niet hoofdletter gevoelig, en diakritische tekens (’é’, ‘ö’, ‘ç’ ‘č', etc.) worden vereenvoudigd (bijvoorbeeld: é => e, ö => o). ==== patroon (reguliere expressie) ==== Met een reguliere expressie is het mogelijk complexere zoekopdrachten te doen dan met een eenvoudige tekst. * Reguliere expressies worden hier niet uitgelegd, daarvoor verwijzen wij naar de [[https://nl.wikipedia.org/wiki/Reguliere_expressie|Wikipedia pagina]]. * Oefenen met reguliere expressies kan op [[https://regexcrossword.com|regexcrossword.com]]. Een aantal handige tekens: * Een verticale balk scheidt de alternatieven, bijvoorbeeld “groen|rood” herkent “groen” of “rood”. * Een punt (.) staat voor een willekeurig teken * Een dakje ^ staat voor het begin van de regel (begint met) * Een dollarteken $ staat voor het eind van de regel (eindigd op) * Vierkante haken geven een lijst van mogelijke tekens: [abc]. * Binnen vierkante haken staat een minteken voor een reeks: [a-z] of [0-9] is het patroon waarmee alle letters of cijfers “gevangen” worden. * Een dakje als eerste teken binnen de vierkante haken verandert de tekenverzameling in het omgekeerde: [^0-9] herkent alles wat geen cijfer is. ===== Zoekmethoden (geavanceerd) ===== ==== bevat (=) ==== Deze zoekethode is alleen van toepassing op tekst velden. Voor getal velden wordt in plaats hiervan de zoekmethode [[#gelijk aan]] gebruikt. Een veld "bevat" een tekst of patroon wanneer de hele waarde **of een deel van de waarde** overeenkomt met de tekst of het patroon.\\ Eenvoudige voorbeelden: * "leegstand" bevat ''leegstand'' * "leegstand" bevat **geen** ''leegstandsbeheer'' * "leegstandsbeheer" bevat ''leegstand'' * "Café" bevat ''cafe'' * "cafe" bevat ''Café'' * "1033" bevat ''33'' indien "1033" een **tekst** is, bij het **getal** 1033 zal er geen match zijn omdat dan de zoekmethode [[#gelijk aan]] word gebruikt) Voorbeelden met patronen: * "leegstand" bevat ''^leegstand$'' * "leegstandsbeheer" bevat **geen** ''^leegstand$'' * "A" bevat **geen** ''A\++'' * "A+" bevat ''A\++'' * "A++" bevat ''A\++'' * "A+++" bevat ''A\++'' * "basisonderwijs" bevat ''(basis|voortgezet )onderwijs'' * "voortgezet onderwijs" bevat ''(basis|voortgezet )onderwijs'' * "speciaal onderwijs" bevat **geen** ''(basis|voortgezet )onderwijs'' ==== bevat niet (!=) ==== Deze zoekethode is alleen van toepassing op tekst velden. Voor getal velden wordt in plaats hiervan de zoekmethode [[#niet gelijk aan]] gebruikt. Dit is exact het omgekeerde van [[#bevat]].\\ Merk wel op dat bij het zoeken in twee of meer velden bij sommige items zowel **bevat** als **bevat niet** waar kan zijn.\\ Deze items worden ook gevonden! Het kan dus belangrijk zijn om de veld naam heel specifiek te maken.\\ ==== gelijk aan (==) ==== Een getal veld is "gelijk aan" een getal wanneer ze exact even groot zijn.\\ Voor getallen mag ook een enkele "=" als vergelijkingsteken gebruikt worden voor "gelijk aan".\\ Een tekst veld is "gelijk aan" een tekst of patroon wanneer het ***hele** veld overeenkomt met de tekst of het patroon.\\ Voorbeelden: * "leegstand" is gelijk aan ''leegstand'' * "leegstand" is **niet** gelijk aan ''leegstandsbeheer'' * "leegstandsbeheer" is *niet* gelijk aan ''leegstand'' * "Café" is gelijk aan ''cafe'' * "cafe" is gelijk aan ''Café'' * "basisonderwijs" is gelijk aan ''basisonderwijs|voortgezet onderwijs'' * "basisonderwijs" is **niet** gelijk aan ''(basis|voortgezet )onderwijs'' * "burgemeester" en "burgermeester" zijn beide gelijk aan ''burger?meester'' (het vraagteken na de 'r' maakt deze 'r' optineel) * 1033 is **niet** gelijk aan ''33'' (ongeacht of 1033 een tekst of een getal is) * 1033 is gelijk aan ''1.033,0'' indien 1033 een **getal** is ("1.033,0" is een correcte schrijfwijze voor 1033), is "1033" een **tekst** dan is deze **niet** gelijk aan "1.033,0". ==== niet gelijk aan (<>) ==== Dit is exact het omgekeerde van **gelijk aan**.\\ Merk wel op dat bij het zoeken in twee of meer velden bij sommige items zowel **gelijk aan** als **niet gelijk aan** waar kan zijn.\\ Deze items worden ook gevonden! Het kan dus belangrijk zijn om de veld naam heel specifiek te maken.\\ ==== groter dan (>) ==== Deze zoekethode is alleen van toepassing op getal velden. Voor tekst velden wordt in plaats hiervan de zoekmethode [[#alfabetisch na]] gebruikt. ==== kleiner dan (<) ==== Deze zoekethode is alleen van toepassing op getal velden. Voor tekst velden wordt in plaats hiervan de zoekmethode [[#alfabetisch voor]] gebruikt. ==== alfabetisch na (>) ==== Deze zoekethode is alleen van toepassing op tekst velden. Voor getal velden wordt in plaats hiervan de zoekmethode [[#groter dan]] gebruikt. ==== alfabetisch voor (<) ==== Deze zoekethode is alleen van toepassing op tekst velden. Voor getal velden wordt in plaats hiervan de zoekmethode [[#kleiner dan]] gebruikt. ==== veld is leeg (=?) ==== Een veld is **leeg** wanneer er bij het desbetreffende item geen data voor dat veld aanwezig is. Alle waarden inclusief "0", "-", een lege tekst (""), etc. worden __niet__ als **leeg** gezien. Lege velden worden meestal verborgen, en anders weergegeven met het "lege set" symbool: ∅. Na het zoeken op lege velden worden de gevonden lege velden echter (tijdelijk) wel weergegeven. ==== veld is niet leeg (=*) ==== Een veld is **niet leeg** wanneer er bij het desbetreffende item data voor dat veld aanwezig is. Alle waarden inclusief "0", "-", een lege string (""), etc. worden als **niet leeg** gezien. ===== Zoekresultaten ===== * De zoekresultaten worden weergegeven in de widget [[Geselecteerde items]]. * Als er meerdere items gevonden zijn worden hier per collectie de labels van de gevonden items weergegeven - deze labels zijn aanklikbaar waarna het desbetreffende items wordt geopend. * Als er slechts één item is gevonden wordt deze automatisch geopend. * Zoekresultaten die blauw zijn gearceerd zijn (op dat moment) ook zichtbaar in het overzicht (de kaart).