Manuelles Segmentdatenmodell und Synchronisierungsverhalten
Manuelle Segmente verwenden ein Datenmodell mit zwei Tabellen mit automatischer Synchronisierung zwischen der Konfigurationstabelle und der für Suchvorgänge verwendeten Laufzeittabelle.
Datenmodellübersicht
Manuelle Segmente verwenden eine Architektur mit zwei Tabellen, die die Konfiguration von Laufzeitdaten trennt. Dieses Design stellt sicher, dass die Konfigurationstabelle die einzige Wahrheitsquelle bleibt, während die Laufzeittabelle für die Suchleistung optimiert ist.
- Konfigurationstabelle: sn_query_gen_segment_table_config
- Hier definieren Sie manuelle Segmente. Jeder Datensatz stellt eine Segmentkonfiguration dar, die Administratoren erstellen und verwalten.
- Synchronisierte Tabelle: sn_query_gen_segment
- Sie schreiben nicht direkt in diese Tabelle. Wenn eine manuelle Segmentkonfiguration erstellt oder aktualisiert wird, synchronisiert eine Business-Regel sie automatisch mit dieser Tabelle, die bei der Suche abgefragt wird.
Konfigurationstabellenfelder
Die sn_query_gen_segment_table_ Die Konfigurationstabelle enthält die folgenden Felder zum Definieren manueller Segmente:
| Feld | Spaltenname | Max. Länge | Erforderlich | Zweck |
|---|---|---|---|---|
| Tabellenname | table_name | — | Ja | Die Tabelle (Entität), für die das Segment gilt. Muss eine aktive Entität in der semantischen Ebene haben. |
| Name | name | 255 Zeichen | Ja | Anwenderfreundlicher Name, mit dem das LLM während der semantischen Suche übereinstimmt. |
| Beschreibung | description | 4.000 Zeichen | Nein | Optionale Klärung mithilfe häufig verwendeter Begriffe. Hilft dem LLM zu verstehen, wann das Segment angewendet werden soll. |
| Filter | filter | 4.000 Zeichen | Ja | Codierte Abfrage, die die Filterbedingungen des Segments definiert. Verwendet den Bedingungsgenerator (v2). |
| Aktiv | active | — | Nein | Standardmäßig ist Wahr . Wann Falsch , Das Segment ist deaktiviert und von der Suche ausgeschlossen. |
Tabellenfelder synchronisiert
Die sn_query_gen_segment Tabelle enthält die Laufzeitdaten, die für Suchvorgänge verwendet werden:
| Feld | Quelle |
|---|---|
| name | Aus manueller Segmentkonfiguration kopiert |
| description | Aus manueller Segmentkonfiguration kopiert |
| filter | Aus manueller Segmentkonfiguration kopiert |
| table | Von table_name |
| entity | Aufgelöste Referenz auf sn_query_gen_entity |
| source_table | Immer sn_query_gen_segment_table_config |
| source_id | SYS_ID des Datensatzes der manuellen Segmentkonfiguration |
| active | Manual_Segment.Active UND Entität.Active |
Synchronisierungsverhalten
Manuelle Segmente werden automatisch zwischen den Konfigurations- und Laufzeittabellen synchronisiert. Sie müssen die Synchronisierung nicht manuell auslösen.
| Auslöser | Wenn | Was Passiert |
|---|---|---|
| Business-Regel in Konfiguration | Einfügen oder aktualisieren auf sn_query_gen_segment_table_config | Synchronisiert den einzelnen Datensatz mit sn_query_gen_segment (Asynchron) |
| Entität einfügen/aktualisieren | Wenn eine Entität mit erstellt oder aktualisiert wird active=true | Synchronisiert alle Segmente (einschließlich manuell) für diese Entität erneut |
| Wöchentliche geplante Aufgabe | Samstags um Mitternacht | Vollständige Synchronisierung aller 6 Segmentquellen; Bereinigung verwaister Datensätze |
Während der Synchronisierung ist ein manuelles Segment berechtigt, wenn:
- active = true Im Konfigurationsdatensatz
- Die referenzierte Tabelle hat eine aktive Entität in sn_query_gen_entity
Wenn eine der Bedingungen nicht erfüllt ist, wird das synchronisierte Segment deaktiviert (nicht gelöscht).
Aktivierung und Deaktivierung
Der aktive Status eines synchronisierten Segments ist: Manual_Segment.Active UND Entität.Active .
| Ereignis | Ergebnis |
|---|---|
| Manuelle Segmentkonfiguration active→ Falsch | Synchronisiertes Segment deaktiviert |
| Manuelle Segmentkonfiguration active→ Wahr | Synchronisiertes Segment erneut aktiviert (wenn Entität ebenfalls aktiv ist) |
| Entität active→ Falsch | Alle Segmente für diese Entität deaktiviert |
| Manuelle Segmentkonfiguration gelöscht | Synchronisiertes Segment gelöscht |
| Entität gelöscht | Verwaiste Segmente, die nach geplanter Aufgabe bereinigt wurden |
Deaktivierte Segmente werden aus Suchergebnissen ausgeschlossen.
ACL-Schutz
Die synchronisierte Segmenttabelle verfügt über strikte ACLs, sodass die Konfigurationstabelle die einzige Wahrheitsquelle bleibt:
- Erstellen: Blockiert ( admin_overrides = false) – Segmente können nur über Synchronisierung erstellt werden
- Schreiben Sie in name: Blockiert: Muss im Konfigurationsdatensatz geändert werden
- Schreiben Sie in description: Blockiert: Muss im Konfigurationsdatensatz geändert werden
Überlegungen zur Filterlänge
Während filterFeld unterstützt bis zu 4.000 Zeichen, die Systemeigenschaft sn_query_gen.segments.max_filter_lengthDer Standardwert ist 2.000. Filter, die länger als dieser Schwellenwert sind, werden gekürzt, wenn sie in den LLM-Prompt aufgenommen werden.
Domänentrennung
Manuelle Segmente unterstützen Domänentrennung. Beim Erstellen eines Segmentkonfigurationsdatensatzes mit einem bestimmten sys_domain, Das synchronisierte Segment erbt diese Domäne. Bei der Suche werden Segmente nach dem Domänenkontext des Anwenders gefiltert.
Wenn die Domänentrennung in Ihrer Instanz nicht aktiviert ist, ist dieses Feld inaktiv und kann ignoriert werden.