Querying

Met INDICA is het mogelijk om gemakkelijk krachtige queries te maken. Queries kunnen gemaakt worden op verschillende manieren:

  • Queries schrijven met de hand

  • Queries schrijven met behulp van de advanced query builder

Queries schrijven

Door het schrijven van (geavanceerde) queries wordt het mogelijk gemaakt om een flexibele en geavanceerde manier te hebben om door grote hoeveelheden documenten te zoeken.

De zoekbalk biedt meerdere manieren om queries uit te voeren. Het is mogelijk om zoektermen in te typen en de manier waarop de query-interpreter omgaat met de query te manipuleren.

INDICA staat de volgende manipulaties van queries toe:

Termen en zinnen

Een query is opgedeeld in termen en operatoren. Er zijn twee soorten termen: enkele termen en zinnen.

Een enkele term is een enkel woord, zoals test of hallo.

Een zin is een groep woorden tussen dubbele aanhalingstekens, zoals "hallo test".

Boolean Operatoren

Met Boolean operatoren kunnen termen worden gecombineerd door middel van logische operatoren. INDICA ondersteunt de volgende operators:

  • AND
    De operator AND komt overeen met documenten waarin beide termen ergens in de tekst van een enkel document voorkomen. Het symbool ‘&&’ kan worden gebruikt in plaats van het woord ‘AND’.
    Om te zoeken naar documenten die “jakarta apache” en “Indica zoeken” bevatten, gebruikt u de zoekopdracht "jakarta apache" AND "INDICA zoeken"
  • “+”
    De + operator vereist dat de term na het + symbool ergens in een veld van een enkel document voorkomt.
    Om te zoeken naar documenten die “jakarta” moeten bevatten en die “INDICA” kunnen bevatten, gebruikt u de zoekopdracht + jakarta INDICA
  • OR
    De operator OR is de standaardcombinatieoperator.
    Dit betekent dat als er geen booleaanse operator tussen twee termen staat, de operator OR wordt gebruikt.
    De operator ‘OR’ koppelt twee termen aan elkaar en zoekt een overeenkomend document als een van de termen in een document voorkomt.
    Het symbool || kan worden gebruikt in plaats van het woord OR.
    Om documenten te zoeken die “jakarta apache” of gewoon “jakarta” bevatten, gebruikt u de zoekterm "jakarta apache" jakarta of "jakarta apache" OR jakarta.
  • NOT
    De operator NOT sluit documenten uit die de term na NOT bevatten.
    Het symbool ! kan worden gebruikt in plaats van het woord NOT.
    Om te zoeken naar documenten die “jakarta apache” maar niet “INDICA zoeken” bevatten, gebruikt u de zoekopdracht "jakarta apache" NOT "INDICA zoeken"

    Notitie

    De NOT-operator kan niet met slechts één term worden gebruikt. De volgende zoekopdracht levert bijvoorbeeld geen resultaten op: NOT "jakarta apache"

  • “-”
    De operator - sluit documenten uit die de term na het - - symbool bevatten.
    Om te zoeken naar documenten die “jakarta apache” maar niet “INDICA zoeken” bevatten, gebruikt u de zoekopdracht "jakarta apache" - "INDICA zoeken"

Belangrijk

Boolean operatoren moeten HOOFDLETTERS zijn.

Groeperen

INDICA ondersteunt het gebruik van haakjes om clausules te groeperen om subqueries te vormen. Dit kan erg handig zijn als u boolean logica voor een query wilt beheren. Om naar “jakarta” of “apache” en “website” te zoeken, gebruikt u bijvoorbeeld de query (jakarta OR apache) AND website. Dit elimineert elke verwarring en zorgt ervoor dat u zeker weet dat “website” moet bestaan en dat de term “jakarta” of “apache” mag bestaan.

Queries met bereik

Queries met een bereik maken het mogelijk om documenten te zoeken waarmee een veld binnen een bepaald bereik valt. Het bereik van een query kan inclusief of exclusief zijn. In spreektaal heeft men het dan over ‘tot’ en ‘tot en met’. Het sorteren van resultaten wordt lexicografisch gedaan.

Bijvoorbeeld: date:[2002-01-01 TO 2003-01-01]

Deze query vraagt om documenten waarvan de datum tussen 2002-01-01 en 2003-01-01 ligt, inclusief de datums in de query.

Om een query met bereik op te stellen waarbij de ingevulde waarden worden uitgesloten uit de resultaatset, gebruikt u { en } in plaats van [ en ]. De speciale karakters voor het aangeven van een inclusief of exclusief bereik kunnen ook worden gemixt:

Bijvoorbeeld: date:{2002-01-01 TO 2003-01-01]

Wildcards

Een ‘wildcard’ geeft de mogelijkheid om één of meer posities in een query te vullen met een willekeurig karakter.

INDICA ondersteunt twee verschillende ‘wildcard’ karakters:

  • “?”
    Een vraagtegen staat toe dat deze positie wordt gevuld door een enkel willekeurig karakter.
    Bijvoorbeeld: ?est
    INDICA zal resultaten geven voor woorden zoals “rest”, “test”, “nest”
  • “*”
    Een asterisk achter (een deel van) een woord, vereist dat deel van het woord in de resultaatset. Na dat deel van het woord, wordt het woord ‘uitgebreid’.
    Bijvoorbeeld: test*
    INDICA zal resultaten geven voor woorden zoals “testing”, “testresult”, “testcase”

Fuzzy Queries

Een ‘tilde’ (~) met een waarde achter een zoekterm geeft aan dat een zoekterm wellicht op een andere manier gespeld kan zijn. Dit zorgt ervoor dat woorden die lijken op het ingetikte zoekwoord ook worden gevonden.

De waarde achter de tilde is een waarde tussen 0 en 1. De waarde ‘0.5’ kan niet worden gebruikt. Een waarde dichter bij ‘1’ zal woorden vinden die zeer sterk lijken op het ingevulde zoekwoord.

Queries met woordafstand

Queries met een woordafstand gebruiken ook een ‘tilde’ ~. Het kan worden gebruikt in dit format:

"testing Europe"~10

Dit zoekt naar de woorden “testing” en “Europe” met maximaal 10 woorden tussen deze twee termen. Dit resulteert in resultaten zoals:

Testing some pieces advanced software is done routinely in Europe

en

The developer is doing some testing in Europe

Boosten van zoekwoorden

INDICA biedt ondersteuning voor het aanpassen van de relevantie in een zoekopdracht, gebaseerd op de gevonden termen. Om gevonden resultaten hoger in de lijst te krijgen, is het mogelijk om een dakje `^` met een ‘boost factor’ mee te geven achter de zoekvraag. Hoe hoger het meegegeven getal, hoe hoger resultaten met deze term in de lijst komen.

Bijvoorbeeld: wanneer u zoekt naar jakarta apache en de term “jakarta” is relevanter, dan is het mogelijk om deze term te ‘boosten’ met een ^ symbool samen met de ‘boost factor’. Een mogelijke query zou dan zijn: jakarta^4 apache. Documenten waar de term jakarta in zitten, worden hoger op de lijst met resultaten gezet.

Het is ook mogelijk om zinnen te boosten in het format: "jakarta apache"^4 "Indica search". Standaard is de ‘boost factor’ 1. De ‘boost factor’ moet altijd een positief getal zijn, maar kan wel minder zijn dan 1, bijvoorbeeld ‘0.2’.

Geavanceerde query bouwer

De Geavanceerde query bouwer is een visuele tool om makkelijk krachtige queries te kunnen maken. De tool kan worden gebruikt door op het knopje “Geavanceerde Query” te klikken naast het knopje “Query naar CSV”.

Een paneel klapt dan open:

In dit paneel kunnen een aantal opties worden ingevuld:

  • Match Type

    De “Match Type” geeft aan dat “Alle” of “Willekeurige” conditie(s) van de query moet(en) worden voldaan.

  • Conditie toevoegen
    Het is mogelijk om voor de volgende eigenschappen een conditie toe te voegen:
    • Type

    • Path

    • Tags

    • Info

    • Collection

    • Workflow

    • Privacy

    • Dupes

    • Size

    • Document ID

    • Content

    • File name

    • Date (yyyymmdd)

    Selecteer een eigenschap in het linker veld. Klik daarna op ‘Conditie toevoegen’.

    De regel wordt toegevoegd onder de laatst toegevoegde conditie. Hier kunt u ook per conditie aangeven of het een ‘AND’ of een ‘OR’ conditie is. Een conditie kan worden verwijderd door op de ‘X’ naast de conditie te klikken.

  • Groep toevoegen

    De Groep toevoegen knop is beschikbaar bovenaan de Geavanceerde query bouwer, naast de Regel toevoegen knop. Dit voegt een nieuwe groep toe onder de al bestaande groepen. Groepen kunnen elk weer nieuwe condities bevatten.

  • Bouwen

    De Bouwen knop verplaatst het voorbeeld van de query naar de daadwerkelijke zoekbalk. De query kan altijd worden bekeken naast de knoppen onderaan de Geavanceerde query bouwer. Om een query te kunnen opslaan, moet deze eerst worden gebouwd en toegepast als een zoekopdracht.

  • Zoeken

    Pas de gebouwde query toe als een zoekopdracht op de dataset.

    Notitie

    De query moet worden gebouwd voordat deze kan worden toegepast en/of opgeslagen als een Opgeslagen Query.

  • Leegmaken

    Maakt de Geavanceerde query bouwer leeg om weer vers te beginnen.

Mochten er meerdere opties mogelijk zijn voor een van de geselecteerde condities, dan wordt er een lijst getoond met mogelijkheden. Gebruik in dit geval CTRL+klik om meerdere opties in de lijst te selecteren. Ook hier kan de keuze worden gemaakt of alle geselecteerde opties moeten worden voldaan, of dat één van de geselecteerde optie moet worden voldaan.

Escapen van speciale karakers

In sommige gevallen gebruikt een zoekterm één of meer van de gereserveerde speciale karakters. Als dat het geval is, dan moeten deze karakters worden ‘ge-escaped’. Dan worden ze door de zoekmachine gezien als normale karakters.

De volgende karakters zijn gereserveerde speciale karakters:

+ - && || ! ( ) { } [ ] ^ " ~ * ? : \

Om deze karakters te ‘escapen’, moet er een backslash (”\”) voor het speciale karakter worden gezet.