Edurep:Zoekopdracht/Query

Uit Kennisnet Developers Documentatie
< Edurep:Zoekopdracht
Versie door Muskee01 (overleg | bijdragen) op 20 okt 2021 om 08:32 (no more header transclude headache)
Naar navigatie springen Naar zoeken springen

In Edurep kan er worden gezocht op AND/OR/NOT combinaties van trefwoorden, binnen de totale set of binnen specifieke velden.

  • fiets AND pomp
  • kasteel AND (ridder OR ridders)
  • vis AND walvis NOT potvis
  • breuken AND vak=wiskunde
  • breuken AND (titel=werkblad OR titel=taak)

Afhankelijk van de gebruikte zoekinterface zijn er verschillende zoekvelden beschikbaar, bekijk de veldenlijst voor een overzicht.

Beperkingen:

  • De waarde van het query argument mag maximaal 4096 tekens zijn, na urldecoding.
  • De zoekwoorden kunnen alleen letters en cijfers bevatten. Vanwege het indexatieproces zijn speciale karakters als # en $ zijn niet doorzoekbaar.
  • Wildcard zoeken is beperkt mogelijk. Zoeken op fiets* is wel mogelijk maar *fiets niet. De fiets* is mogelijk met minimaal 2 karakters. Het zoeken met het wildcard teken in een string (infix) is ook mogelijk, ook met minimaal 2 voorloopkarakters. Er mag maximaal 1 * voorkomen per trefwoord.

Encoding:

In Edurep is niet letterlijk te zoeken op speciale karakters als ü of ë. Deze karakters moeten eerst geëncodeerd worden naar UTF-8. Op het internet zijn diverse overzichtslijsten en conversietools te vinden.

De waarden van SRU argumenten moeten URL-encoded worden opgegeven omdat een verzoek anders verkeerd kan worden geïnterpreteerd.

te zoeken url http://www.test.urls.nl/~user/index.html&argument=alsotest
query argument smo.hReview.info="http://www.test.urls.nl/~user/index.html&argument=alsotest"
url-encoded representatie smo.hReview.info%3D%22http%3A%2F%2Fwww.test.urls.nl%2F%7Euser%2Findex.html%26argument%3Dalsotest%22


Compliance

De Edurep CQL is niet volledig compliant met de officiele CQL. In de Edurep CQL variant hebben de ondersteunde booleans niet allen dezelfde voorkeur. Hieronder staat een CQL query en de (vereenvoudigde) wijze waarop deze wordt geïnterpreteerd door de gebruikte cqlparser.

"vertelplaten NOT lom.rights.cost=yes NOT lom.technical.format=non-digital NOT about.repository.id exact FENC"
CQL_QUERY
(
  (
    (
      (
        (
          'vertelplaten'
        ),
        BOOLEAN('not'),
		
        'lom.rights.cost=yes'
      ),
      BOOLEAN('not'),

      'lom.technical.format=non-digital'
    ),
    BOOLEAN('not'),

    'about.repository exact FENC'
  )
)

Installeer en uitvoeren in Python:

 >>> from cqlparser import parseString
 >>> print parseString("aap").prettyPrint()