{# 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 %}

# Sökguide

Denna guide förklarar hur man skriver avancerade sökfrågor med hjälp av lättförståeliga exempel.

### Enkel sökning (en eller flera termer)

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`

### Frassökning

Exempel: `"open science"`

Resultaten kommer att matcha poster som innehåller frasen `open science` i något fält.

### Fältsökning

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.

### Kombinerad enkel-, fras- eller fältsökning

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.

### Intervallsökning

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.:

- 2017 utökas till 2017-01-01
- 2017-06 utökas till 2017-06-01

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.

### Rankning/Sortering

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:

- Senaste
- Bästa matchning
- Äldsta
- Mest visade
- Mest nedladdade

### Reguljära uttryck

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.

### Fält som saknar värden

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)

### Avancerade söktekniker

#### Boosting

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"`

#### Fuzzy-sök

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`.

#### Närhetssökningar

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`

#### Wildcard-tecken

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.

{%- endblock page_body%}