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

Suche: Filter

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
  • Relation

# Relation

Das Relation Widget erlaubt es nach Relationen zwischen Verzeichnungseinheiten zu suchen. Wenn das Widget Relation ausgewählt wird, muss ein eindeutiger Name in der Konfiguration hinterlegt werden. Zusätzlich kann die Auswahl der Verzeichnungseinheiten, die im Filter erscheinen, eingeschränkt werden. Im folgenden Beispiel werden zwei Filter mit dem Widget relation konfiguriert. Im Filter für Akte werden nur Verzeichnungseinheiten angezeigt, die im Feld archival_type den Wert Akte enthalten. Im Filter für Bild werden nur Verzeichnungseinheiten angezeigt, die im Feld archival_type den Wert Bild enthalten. Zu beachten ist die Eigenschaft name, die zwingend notwendig ist und eindeutig über alle mit dem Widget Relation sein muss.

search:
    filters:
        - schema:
            - label:
                de: Akte
              widget: Relation
              name: akte
              filter:
                  archival_type: Akte
            - label:
                de: Bild
              widget: Relation
              name: bild
              filter:
                  archival_type: Bild

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

Suche: Filter

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)
  • protection_base_date (Char)
  • protection_period_category (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.