Modalità d’uso

L’attributo di colonna ext_ltx abilita le funzionalità LTX (Large Text eXtension) di Genropy, che permettono la gestione di testi di grandi dimensioni, metadati estratti e indicizzazione full-text.

Può essere configurato in due modalità principali:
  • local → i dati testuali e i metadati vengono memorizzati nella stessa tabella che definisce la colonna.

  • document → i dati testuali e i metadati vengono memorizzati nella tabella esterna ltx.document, con un collegamento tramite foreign key.

Modalità Local

Sintassi:

tbl.column('testo', ext_ltx=True)
tbl.column('testo', ext_ltx='italian')
tbl.column('testo', ext_ltx='local:italian')

Caratteristiche principali:

  • Tutto è self-contained nella tabella corrente.

  • ext_config() aggiunge automaticamente:

  • <campo>_text → testo indicizzato.

  • <campo>_language → lingua del testo (se non specificata).

  • <campo>_tsv → vettore tsvector per indicizzazione full-text PostgreSQL.

  • <campo>_extracted_metadata → metadati strutturati.

  • <campo>_extraction_ts → timestamp estrazione.

  • <campo>_extract_error, <campo>_snippet, <campo>_rank → info di ricerca.

  • Mixin associato: LTXLocalTableMixin

Gestisce:

  • Aggiornamento automatico della lingua (langdetect).

  • Pulizia dei metadati quando cambia il testo.

  • Reset dei campi legati all’estrazione se il contenuto viene modificato.

Quando usarla:

  • Testo puro inserito manualmente o derivato da altri dati.

  • Non serve gestire file binari o OCR.

  • Vuoi tenere tutto nella stessa tabella per semplicità.

Modalità Document

Sintassi:

tbl.column('file', ext_ltx='document:italian')
tbl.column('file', ext_ltx='*:italian')

Caratteristiche principali:

  • Il testo, i metadati e l’eventuale file sorgente sono gestiti nella tabella ltx.document.

  • ext_config() rimanda a plugColumnToDocument() che:

  • Crea una foreign key verso ltx.document.

  • Registra il mapping chiave primaria ↔ chiave esterna documento in ltx_document_connection.

  • Aggiunge una colonna <campo>_ltx_document_id per join diretta con ltx.document.

  • Mixin associato: LTXRelatedTableMixin

Gestisce:
  • Creazione/aggiornamento record in ltx.document.

  • Registrazione parametri (ltx_documentRegister) come nome, lingua, preprocess (OCR, estrazione).

  • Supporto file binari (pdf, jpg, ecc.) con OCR automatico se configurato.

  • Memorizzazione hash del file per evitare rielaborazioni inutili.

Quando usarla:
  • Devi gestire file binari (PDF, immagini, ecc.).

  • Vuoi centralizzare in ltx.document la gestione di testi, OCR, metadati e indicizzazione.

  • Vuoi condividere lo stesso documento tra più tabelle o record.

Autore della sezione: Davide Paci