Zum Inhalt

v0.45.0

ANTON (Version 0.45.0)

Neue Features

  • Gewichtete Suche für Actors, Places und Keywords: Neues Suchsystem mit konfigurierbaren Feldgewichtungen
  • Suchergebnisse werden nach Relevanz sortiert
  • Exakte Treffer werden höher gewichtet als Teil-Treffer
  • Treffer am Wortanfang werden höher gewichtet als Treffer in der Mitte
  • UI-Option: In den Listenansichten (Actors, Places, Keywords) erscheint bei aktiver Suche eine Checkbox "Nach Relevanz sortieren"
  • User Setting: Benutzer können die gewichtete Suche als Standardeinstellung in ihrem Profil aktivieren

Konfiguration der gewichteten Suche

Aktivierung als Benutzereinstellung

Jeder Benutzer kann die gewichtete Suche in seinen persönlichen Einstellungen aktivieren:

  1. Profil → Einstellungen
  2. Checkbox "Gewichtete Suche aktivieren" setzen

Wenn aktiviert, ist die Checkbox "Nach Relevanz sortieren" in den Listenansichten standardmässig aktiv.

Aktivierung in der Benutzeroberfläche

In den DataTables für Actors, Places und Keywords erscheint bei aktiver Suche eine Checkbox "Nach Relevanz sortieren" unterhalb des Suchfelds. Wenn aktiviert, werden die Ergebnisse nach Relevanz statt nach dem Standard-Sortierfeld sortiert.

Aktivierung/Deaktivierung (global für API)

Die gewichtete Suche kann über die Settings aktiviert oder deaktiviert werden:

// Aktivieren
Setting::setValue('search_weighted_enabled', true);

// Deaktivieren (Standard)
Setting::setValue('search_weighted_enabled', false);

Bei der API-Suche kann die gewichtete Suche auch per Request-Parameter gesteuert werden:

?weighted=true

Gewichtungen anpassen

Die Gewichtungen für jedes Modell können individuell konfiguriert werden. Höhere Werte bedeuten höhere Relevanz.

Actors (search_weight_actors): | Feld | Standard-Gewicht | |------|-----------------| | name | 10 | | alternative_names | 7 | | variants | 5 | | abbreviations | 5 | | type_label | 3 | | description | 2 | | sources | 1 | | comment | 1 |

Places (search_weight_places): | Feld | Standard-Gewicht | |------|-----------------| | name | 10 | | city | 8 | | state | 6 | | alternative_names | 5 | | variants | 5 | | abbreviations | 5 | | address | 3 | | description | 2 | | sources | 1 | | comment | 1 |

Keywords (search_weight_keywords): | Feld | Standard-Gewicht | |------|-----------------| | label | 10 | | description | 5 | | name | 3 |

Gewichtungen ändern

// Beispiel: Gewichtungen für Actors anpassen
Setting::setValue('search_weight_actors', [
    'name' => 15,              // Name noch wichtiger
    'alternative_names' => 10,
    'variants' => 5,
    'abbreviations' => 5,
    'type_label' => 3,
    'description' => 2,
    'sources' => 1,
    'comment' => 1,
]);

Technische Details

  • Neues Trait HasWeightedSearch für Models (Actor, Place, Keyword)
  • Relevanz-Scoring basiert auf:
  • Exakter Treffer: Gewicht × 3
  • Treffer am Anfang: Gewicht × 2
  • Treffer enthält: Gewicht × 1
  • Ergebnisse werden nach relevance_score absteigend sortiert

Update durchführen

php artisan db:seed --class=Update --env=<environment>

14.03.2026