feat(search): SEARCH-002 Suchindex auch auf Materialnamen erweitert
CI / backend-tests (push) Failing after 2m11s
CI / frontend-build (push) Successful in 22s

Wer nach einem Material sucht (z.B. "Kompresse"), will die Objekte finden,
die es aktiv führen - nicht nur Objekte, deren eigener Name/Code passt.
GIN-Trigram-Index auf material.name (Migration 0025), /suche joint jetzt
zusätzlich über objektposition (nur status=aktiv) auf material.name.
Direkter Objekt-Treffer hat Vorrang vor Material-Treffer für dasselbe
Objekt. Command Palette zeigt bei Material-Treffern einen Hinweis
("führt „Kompresse“") statt nur dem Code.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CVgbozhYmuEhiEJHffRXCV
This commit is contained in:
2026-09-08 01:16:45 +02:00
co-authored by Claude Sonnet 5
parent 174cefa595
commit 2475c6a68d
5 changed files with 105 additions and 12 deletions
@@ -0,0 +1,23 @@
"""SEARCH-002: GIN-Trigram-Index auf Material.name für Suche über Materialnamen.
Revision ID: 0025_material_suchindex
Revises: 0024_dokument_hash
Create Date: 2026-09-08
"""
from typing import Sequence, Union
from alembic import op
revision: str = "0025_material_suchindex"
down_revision: Union[str, None] = "0024_dokument_hash"
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None
def upgrade() -> None:
# pg_trgm-Extension existiert bereits seit Migration 0023.
op.execute("CREATE INDEX ix_material_name_trgm ON material USING GIN (name gin_trgm_ops)")
def downgrade() -> None:
op.execute("DROP INDEX IF EXISTS ix_material_name_trgm")