# Suche
Die Benutzeroberfläche der Suche kann im Archiv Schema Editor konfiguriert. Konkret kann einerseits die Filterliste auf der rechten Seite konfiguriert werden, andererseits die Liste der angebotenen Filterfelder der erweiterten Suche.
# Konfiguration der Filter
Standardmässig (wenn keine Konfiguration vorliegt) werden die Standardfilter vom Produkt DLS verwendet. In der Konfiguration ist es möglich zu definieren, welche Filter angeboten werden sollen und in welcher Reihenfolge sie dargestellt werden sollen.
Die Konfiguration der Filter wird unter dem Schlüssel filters
innerhalb von search
vorgenommen.
Beispielkonfiguration:
search:
filters:
- schema:
- label:
de: Stufe
widget: DescriptionLevel
- label:
de: Deskriptoren
widget: DescriptorsField
- label:
de: Verzeichnungseinheit
widget: TreeField
- label:
de:
widget: MediaTypes
- label:
de: Entstehungszeitraum
widget: DateRange
- label:
de: Bestandsinformationen
field: bestand_history
widget: Select
options:
multiple: AND
# Filter pro Reiter
Es ist möglich, die Konfiguration je nach ausgewähltem Reiter (archival_type
) zu verändern, so dass Filter angezeigt oder versteckt werden wenn man einen Reiter auswählt.
Technisch ist der Reiter an das Feld archival_type
gebunden. Es können mehrere Werte angegeben werden, für welche eine Konfiguration angewendet wird. Die Bedingung archival_type
ist optional. Die oberste Konfiguration, deren Bedingung erfüllt ist, wird verwendet.
search:
filters:
- archival_type:
- Akte
schema:
- label:
de: Bestandsinformationen
field: bestand_history
widget: Select
options:
multiple: AND
Das angegebene Schema wird nur auf Suchergebnisse angewendet, bei denen der Archivalienart Akte
ist.
# Widgets
Unter filters
wird eine Liste der zur Verfügung stehenden Filter definiert.
Pro Filter wird ein widget
angegeben, welches das Verhalten und die Darstellung des Filters
vorgibt.
Der DLS bringt bereits ein Set an Widgets mit, welche für spezifische Felder optimiert sind und eine Basisfunktionalität anbieten:
DateRange
DescriptionLevel
DescriptorsField
MediaTypes
TreeField
# Labels
Bei den meisten Widgets ist es möglich, das Label in den entsprechenden Sprachen zu definieren.
Dies ermöglicht es, die Filter umzubenennen und so an die spezifischen Bedürfnisse anzupassen.
Das keyword label
ist daher erfordlich und enthält ein Label für jede unterstützte Sprache
(de
, en
, it
, fr
, rm
).
Das Widget MediaTypes
hat kein Label, da diese Felder nur aus einer Schaltflächengruppe bestehen
und kann wird daher leer definiert werden (siehe Beispiel oben).
# Felder
Sie können Felder entweder aus den Produkten oder Benutzerdefinierten Optionen auswählen. Diese ausgewählten Felder müssen als Enums existieren. Das ausgewählte Feld wird mit den entsprechenden Enum-Werten abgeglichen. Bei der Filterung wird das Label der entsprechenden Enums angezeigt und die Filterung basiert auf dem ausgewählten Identifier des Enums. Wenn der Feldwert keine Daten in der Enum-Tabelle hat, werden die Suchfelder leer sein.
# Optionen
Wenn Sie Benutzerdefinierte Felder oder Produkfelder für Filter verwenden, können Sie Optionen definieren. Diese Optionen werden an das entsprechende Widget übergeben und während der Filterung verwendet.
# Optionen: Multiple
Mit dem Operator multiple
kann das Widget mehrere Auswahlmöglichkeiten haben.
Mit dem Operator können Sie auch festlegen, wie die ausgewählten Werte kombiniert werden sollen.
Die verfügbaren Operatorwerte sind AND
und OR
.
# Erweiterte Suche
Die in der erweiterten Suche angebotenen Filter können auch über den Archiv Schema Editor konfiguriert werden.
Dazu wird unterhalb des Schlüssels advanced-search
innerhalb von search
eine Liste von
Feldern definiert, die als Filter zur Verfügung stehen. Es können dabei auch Customfields
angeboten werden.
Beispielkonfiguration:
search:
advanced-search:
- schema:
- field: title
- field: signature
- field: usability
label:
de: Bestand
- field: bestand_history
label:
de: Bestandsgeschichte
widget: FieldsText
# Filter pro Reiter
Es ist möglich, die Konfiguration je nach ausgewähltem Reiter (archival_type
) zu verändern, so dass Filter angezeigt oder versteckt werden wenn man einen Reiter auswählt.
Technisch ist der Reiter an das Feld archival_type
gebunden. Es können mehrere Werte angegeben werden, für welche eine Konfiguration angewendet wird. Die Bedingung archival_type
ist optional. Die oberste Konfiguration, deren Bedingung erfüllt ist, wird verwendet.
search:
advanced-search:
- archival_type:
- Akte
schema:
- label:
de: Bestand
field: bestand_history
widget: auswählen
options:
multiple: AND
# Konfiguration
Pro Feld wird unter dem key field
der technische Name des Feldes angegeben.
Das label
wird pro Sprache übersetzt angegeben. Dies sollte für alle aktivierten Sprachen
pro Feld gemacht werden. Das label
kann für die standardmässig aktivierten Filter
weggelassen werden. Das sind konkret folgende Felder:
titel
signatur
autor
contains
contains_also
description
Limitierung
Momentan können nur einfach Textfelder (char/string) in der erweiterten Suche verwendet werden.
# Standardfelder
In der erweiterten Suche werden momentan folgende Standardfelder des Produktes unterstützt:
accessibility
(Char
)ancestor_path
(Char
)approval
(Char
)author
(Char
)contains
(Char
)contains_also
(Char
)content_form
(Char
)copyright
(Char
)created_display
(Char
)custom_fields
(Char
)descendant_path
(Char
)description
(Char
)description_level
(Char
)editor
(Char
)legal_state
(Char
)locations
(Char
)order_classification
(Char
)ownership
(Char
)provenance
(Char
)related_records
(Char
)signature
(Char
)text
(Char
)thumbnail_path
(Char
)title
(Char
)usability
(Char
)usability_accessibility_type
(Char
)
# Benutzerdefinierte Felder (customfields)
Benutzerdefinierte Felder können wie im folgenden Beispiel verwendet werden.
Technisch wird dann im Hintergrund ein entsprechender customfield_
Präfix verwendet.
search:
advanced-search:
- schema:
- field: bestand_history
label:
de: Bestandsgeschichte
widget: FieldsText
# Konfiguration der Metadaten in den Suchresultaten
Die Metadaten der Suchresultate können konfiguriert werden. Die Konfiguration erfolgt unter search.search-card
.
Anbei ein Beispiel für eine Konfiguration:
search:
search-card:
- condition:
filter:
archival_type: Bild
schema:
- field: signature
label:
de: Signatur
en: Signature
- field: quantity
label:
de: Quantität
en: Quantity
- field: ownership
label:
de: Institution
en: Institution
- condition:
filter:
archival_type: "Tonaufzeichnung"
schema:
- field: description_level
label:
de: Description Level
Für Bild werden die Felder signature
, quantity
und ownership
in den Suchresultaten angezeigt.
Für Tonaufzeichnung wird nur das Feld description_level
angezeigt.
Für andere Archivtypen wird die Standardkonfiguration verwendet.
Mit exclude
im Bedingungsblock werden z.B. Archivtypen ausgeschlossen.
Um das Feld signatur
für alle Archivtypen ausser Bild
anzuzeigen, wird folgende Konfiguration angewendet:
search:
search-card:
- condition:
filter:
exclude:
archival_type: Bild
schema:
- field: signature
label:
de: Signatur
en: Signature
Anbei eine abgeschlossene Liste der verfügbaren Metadaten, die in den Suchresultaten angezeigt werden können:
pk
is_orderable
is_orderable_for_inspection
is_orderable_for_reproduction
is_orderable_for_exposition_lending
is_orderable_for_administrative_lending
signature
title
created_display
thumbnail_url
has_thumbnail
archival_type
description_level
descendant_path
accessibility_usability
usability_accessibility_type
usability_accessibility_type_label
files_are_public
files
is_public
is_approval_required
children_count
custom_fields
thumbnail_path
accessibility
usability
ownership
Zusätzlich werden auch benutzerdefinierte Felder unterstützt.