{# Copyright (C) 2021 CERN. Copyright (C) 2024 KTH Royal Institute of Technology. Invenio App RDM is free software; you can redistribute it and/or modify it under the terms of the MIT License; see LICENSE file for more details. #} {%- set title = _("Search guide") %} {%- extends config.BASE_TEMPLATE %} {%- block page_body %}
Denna guide förklarar hur man skriver avancerade sökfrågor med hjälp av lättförståeliga exempel.
Exempel:
open science
Resultaten kommer att matcha poster som innehåller termerna open
eller science
i något fält. Observera att grundord används, så exempelvis kommer science
även att matcha
sciences
. Sökresultaten rankas enligt en algoritm som tar hänsyn till dina söktermer.
Du kan kräva att båda termerna är med med hjälp av antingen
+
eller AND
operatorn:
Exempel:
+open +science
eller
open AND science
Du kan kräva att en eller flera termer inte är med med hjälp av antingen
-
eller NOT
operatorn:
Exempel:
-open +science
eller
NOT open AND science
Exempel:
"open science"
Resultaten kommer att matcha poster som innehåller frasen
open science
i något fält.
Exempel:
metadata.title:open
Resultaten kommer att matcha poster som innehåller termen open
i
fältet metadata.title
. Om du vill söka efter flera termer
i titeln måste du gruppera termerna med parentes:
Exempel:
metadata.title:(open science)
Se InvenioRDM-dokumentationen för en fullständig lista över fält du kan söka i.
Exempel:
+metadata.title:"open science" -metadata.title:policy
eller t.ex.
metadata.title:(-open +science)
Du kan kombinera enkel-, fras- och fältsökning för att konstruera avancerade sökfrågor.
Exempel:
metadata.publication_date:[2017 TO 2018]
(notera att du måste skriva TO
med versaler).
Resultaten kommer att matcha alla poster med ett publiceringsdatum mellan 2017-01-01 och 2018-01-01 (båda datumen inkluderade).
Observera att partiella datum utökas till fullständiga datum, t.ex.:
Använd hakparenteser ([]
) för inkluderande intervall och
måsvingar ({}
) för exkluderande intervall, t.ex.:
[2017 TO 2018}
är ekvivalent med
[2017-01-01 TO 2017-12-31]
på grund av datumutökning och exklusivt övre gräns.
Exempel på andra intervall:
metadata.publication_date:{* TO 2017-01-01}
: Alla dagar fram till 2017.
metadata.publication_date:[2017-01-01 TO *]
: Alla dagar från 2017.
Som standard sorteras alla sökningar enligt en intern rankningsalgoritm som poängsätter varje matchning mot din sökfråga. Både i användargränssnittet och REST API är det möjligt att sortera resultaten efter:
Reguljära uttryck är ett kraftfullt mönsterigenkänningsspråk som tillåter dig att söka efter specifika mönster i ett fält. Till exempel, om vi vill hitta alla poster med DOI-prefixet 10.5281 kan vi använda en sökning med reguljärt uttryck:
Exempel:
metadata.subjects.identifier:/03yrm5c2[1,6]/
Var försiktig, det reguljära uttrycket måste matcha hela fältvärdet. Se syntax för reguljära uttryck för ytterligare detaljer.
Det är möjligt att söka efter poster som antingen saknar ett värde eller har
ett värde i ett specifikt fält med hjälp av _exists_
och
not _exists_
i kombination med fältnamn.
Exempel:
not _exists_:metadata.additional_titles
(alla poster utan metadata.additional_titles)
Exempel:
_exists_:metadata.creators
(alla poster med metadata.creators)
Du kan använda boost-operatorn ^
när en term är mer relevant
än en annan. Till exempel kan du söka efter alla poster med frasen
open science i antingen titel- eller
beskrivnings- fältet, men ranka poster med frasen i
titel fältet högre:
Exempel:
metadata.title:"open science"^5 metadata.description:"open science"
Du kan söka efter termer som är liknande men inte exakt samma som din sökterm
med hjälp av fuzzy-operatorn ~
.
Exempel:
oepn~
Resultaten kommer att matcha poster med termer liknande oepn
vilket
till exempel även skulle matcha open
.
En frassökning med "open science"
förväntar sig som standard att alla termer
är i exakt samma ordning, och skulle därmed till exempel inte matcha en post
som innehåller frasen "open access and science". En närhetssökning
tillåter att termerna inte är i exakt följd och kan inkludera andra termer
emellan. Graden av flexibilitet specificeras av ett efterföljande heltal:
Exempel:
"open science"~5
Du kan använda wildcard-tecken i söktermer för att ersätta ett enda tecken (med
?
operatorn) eller noll eller fler tecken (med
*
operatorn).
Exempel:
ope? scien*
Wildcard-sökningar kan vara långsamma och bör normalt undvikas om möjligt.