osftcontent

Diese Seite wurde automatisch aus dem Datenbank-Schema-Dump generiert und kann unvollständig oder fehlerhaft sein. Die Spalten und Datentypen sind aus dem Schema-Dump bestätigt; die Schreib-/Lese-Pfade und die Verbindung zu FULLTEXTFILEATTACHED sind zusätzlich empirisch aus enaio-Server-Logs (Version 11.0, Build 801/802) rekonstruiert.

Enthält den extrahierbaren Volltext-Inhalt eines Dokuments, der dem FTS-Indexer (index:<port>) als Quelle für die Indexierung in osfttab dient. Eine Zeile pro indexier-fähigem DMS-Objekt (Primärschlüssel osid).

Befüllt wird die Tabelle auf zwei Wegen:

  • Client liefert Volltext mit — beim dms.XMLInsert / dms.XMLUpdate / dms.XMLImport mit der Option FULLTEXTFILEATTACHED=1 lädt der Client einen vorbereiteten Volltext-File hoch (z. B. von einer externen OCR-Pipeline). Dieser landet direkt in fulltext_content.

  • Server-seitige Rendition — Standardweg (FULLTEXTFILEATTACHED=0): der os-rendition-cache-Service erzeugt den Volltext asynchron via OCR/Text-Extraktion und schreibt das Ergebnis in diese Tabelle.

1. Spalten

Name Typ Länge Beschreibung

osid

int

DMS-Objekt-ID (Primärschlüssel). Verweist auf die Hauptobjekttabelle des jeweiligen Objekttyps (objectX.id).

ostype

int

enaio-Objekttyp-ID (haupttyp * 65536 + untertyp, siehe Objekttyp-ID).

fulltext_content

image

max

Extrahierter Volltext als BLOB (in Oracle entsprechend BLOB). Wird vom Indexer beim FTS-Indexlauf gelesen und über std.GetCPObjectIdxFulltext als temporäres File (<ostemp>\cpb_idx_<GUID>.tmp) an den Indexer-Service übergeben.

2. Lifecycle

Bei jedem dms.XMLInsert / dms.XMLUpdate / dms.XMLImport für ein indexier-fähiges Objekt wird der bestehende Volltext-Inhalt vor dem Enqueuen einer neuen RENDITION-Message in oscpmqueue gelöscht:

-- Vor jeder Re-Indexierung — server-intern aufgerufen von
-- CThreadExecutorData::fnStoreInWork → SetIndexDataChanged
-- → StartRenditionExport → WriteVolltextFileIntoDatabase
DELETE FROM osftcontent WHERE osid = 2676390;

Schreibvorgänge (INSERT mit BLOB-Inhalt) laufen server-intern über CBaseData::Bind und sind daher in SQL-Trace-Logs nur als Bind-Operationen sichtbar (nicht als reines SQL-Statement).

3. Verwandte Tabellen

  • osftslog — Status-Spiegel der FTS-Pipeline pro Objekt (flag2-State-Machine).

  • oscpmqueue — CP-Message-Queue, die Rendition- und Indexer-Jobs synchronisiert.

  • osfttab — Volltextsuche-Hauptindex-Tabelle.

4. Beteiligte Server-API-Jobs

Job / Code-Pfad Rolle bzgl. osftcontent

dms.XMLInsert / dms.XMLUpdate / dms.XMLImport

Lösen über CThreadExecutorData::fnStoreInWork → SetIndexDataChanged → StartRenditionExport → WriteVolltextFileIntoDatabase das DELETE der bestehenden Zeile aus. Bei FULLTEXTFILEATTACHED=1 zusätzlich INSERT des mitgelieferten Volltext-Files. dms.XMLImport läuft intern in den Insert- oder Update-Pfad und löst dort den gleichen Lifecycle aus.

DoCreateCPMessage

Direkt nach dem osftcontent-DELETE wird ein RENDITION-Job in oscpmqueue enqueued.

std.GetCPObjectIdxFulltext

Indexer-Lesepfad: holt den Volltext aus osftcontent (bzw. Rendition-Cache) und liefert ihn dem Indexer-Service als temporäres File.

std.GetCPObjectInfo

Liefert HasVolltextFile=True/False — signalisiert dem Indexer, ob ein Eintrag in osftcontent existiert.

ado.ExecuteSQL

Direkter SQL-Pfad für DELETE-Operationen.