Dettaglio configurazione iFile
-
Pubblicato Sabato, 24 Settembre 2011

Di seguito verranno descritti tutti gli elementi della configurazione.
Root-application [obbligatorio]Definisce il path della root dell'applicazione. Questo è molto utile da utilizzare in caso si debba spostare l'applicazione in ambienti diversi, permettendo così di avere path relativi dei file indicizzati.
Il sistema verifica che il path inserito esista e sia corretto nell’ambiente in cui si sta eseguendo il processo di indicizzazione, altrimenti viene presentato in messaggio di errore. Va ricordato che non va inserito l'ultimo separatore di delimitazione.
Timelimit [opzionale] Definisce il tempo massimo di esecuzione del processo di indicizzazione del singolo documento.
Il campo accetta solo valori interi positivi.
Se non valorizzato, il time-limit è quello configurato nel php.ini.
Il valore minimo inseribile è di 180 secondi.
Memorylimit [opzionale] Definisce la memoria massima che lo script può allocare durante l’esecuzione del processo di indicizzazione del singolo documento.
Il campo accetta solo valori interi positivi.
Se non valorizzato, il memory-limit è quello configurato nel php.ini.
Duplicate [opzionale] Campo eliminato dalla versione 2.0Definisce la possibilità di avere documenti duplicati all'interno dell'indice.
Se valorizzato a zero (0) o non presente, il sistema verifica che il contenuto del documento da indicizzare non sia già presente nell'indice.
Altrimenti se valorizzato a uno (1) il sistema non effettua la verifica di esistenza del documento all'interno dell'indice.
La verifica viene fatta sul contenuto del documento.
Parametri permessi:
Encoding [opzionale]Definisce il tipo di "charset encoding" in cui è stato scritto il documento. Di fatto la combinazione di questo campo con il tipo di Analyzer (descritto più avanti)definiscono il processo di conversione dei dati per una corretta indicizzazione. Ad oggi il "charset encoding" definito in fase di configurazione viene utilizzato non solo per l'indicizzazione del contenuto del documento ma per tutti i campi da indicizzare.
Se non valorizzato il sistema cerca di recuperare autonomamente il tipo di encoding di ogni campo.
I tipi di charset configurabili sono:
- UTF-8
- ASCII
- ISO-8859-1
- ISO-8859-15
- CP1256
- Windows-1252
Va fatta molta attenzione al tipo di encoding che viene settato in funzione del tipo di Analyzer utilizzato, una incorretta configurazione, potrebbe provocare una indicizzazione incompleta o restituire il messaggio di errore "Contenuto del file vuoto".
Va fatta molta attenzione al tipo di encoding che viene settato in funzione del tipo di Analyzer utilizzato.
Per le esperienze avute, in caso non si abbia una vera conoscenza del tipo di encoding del documento (ovvero nella maggior parte dei casi),
conviene non configurare il campo.
Di fatto nel caso si utilizzi un Analyzer di tipo UTF-8 e si hanno file codificati in UTF-8 non andrebbe configurato l'encoding dato che le librerie di Zend Lucene tenterebbero di forzare la codifica e pertanto si potrebbe avere, soprattutto per caratteri speciali (con un numero di byte maggiore di uno), una alterazione dei caratteri.
In altri casi il processo di tokenizzazione dei termini potrebbe non andare a buon fine e ritornare un insieme vuoto, pertanto se il sistema presenta una eccezione che il contenuto del documento non è stato tokenizzato verificate anche l'encoding utilizzato.
Server Bit [opzionale]
Definisce il tipo di server su cui è installato il vostro Joomla!. Questa configurazione serve per l’indicizzazione dei documenti PDF dato che il sistema deve poter utilizzare la XPDF compilata per il sistema operativo a 32 o 64 bit.
Microsoft Word To Text [opzionale]
Definisce il meccanismo e l’encoding per il recupero del contenuto da file Microsoft Word. Se non valorizzato il sistema definisce automaticamente dei parametri di default.
- type: Tipo di parser:
- ANTIWORD (utilizza l’eseguibile ANTIWORD)
- COM (utilizza le librerie COM di PHP)
- PHP (utilizza uno script PHP)
- encoding: Il tipo di encoding da utilizzare per il contenuto del documento è utilizzato solo per il type “ANTIWORD” ed equivale al nome senza estensione dei file .txt presenti nella cartella:
adapter/helpers/binaries/resources/
Non va assolutamente inserito ne il tipo di estensione ne il percorso del file.
XPDF [opzionale]
Modifica la xpdfrc
Cliccando sul link “Modifica xpdf” si aprirà una popup (Figura 19) che presenta il contenuto del file “xpdfrc” utilizzato da IFile per la configurazione delle opzioni della XPDF. Ora è solo necessario modificare il contenuto e salvarlo per rendere immediatamete disponibili le nuove opzioni alla prossima indicizzazione di un file PDF.
La pdftotext e la pdfinfo
Per utilizzare una versione personalizzare della “pdftotext” (per il recupero dei contenuti) e della “pdfinfo” (per il recupero dei metadati) basta inserire il percorso assoluto, compreso dell’eseguibile stesso.
Fields [opzionale]
Permette di modificare i tipi di indicizzazione dei campi, che IFile indicizza di default per i documenti. Questo potrebbe essere fatto in caso si voglia che il sistema gestisca differentemente come il testo dei vari campi venga indicizzato.
Analyzer [opzionale] Serve alla gestione del tipo di analizzatore del testo da indicizzare.
Il tipo di analyzer serve per la gestione dei documenti sia in fase di indicizzazione che in fase di ricerca Se si configura un tipo di analyzer per indicizzare un documento e si cambia successivamente, durante la ricerca, i risultati potrebbero essere diversi da quelli attesi. Di fatto un analyzer dovrebbe essere sempre lo stesso per l'indice.
Se non valorizzato il sistema definisce automaticamente come analyzer:
Utf8_CaseInsensitive I tipi di analizzatori sono:
- Text
- TextNum
- Text_CaseInsensitive
- TextNum_CaseInsensitive
- Utf8
- Utf8Num
- Utf8_CaseInsensitive
- Utf8Num_CaseInsensitive
- Custom-default
Per quest'ultimo, "
custom-default", il sistema presenta due nuovi campi che permettono di definire un tipo di analizzatore del testo personalizzato.

Ovvero è possibile definire delle proprie classi per analizzare e tokenizzare il testo .
Di fatto andranno definiti il "
path" assoluto ove risiede lo script PHP contenente la classe definita nel campo "
class".
Un esempio di analizzatore personalizzato è presente al sito:
http://code.google.com/p/lucene-silverstripe-plugin/Per maggiori dettagli sul tipo di analyzer più appropriato alle proprie esigenze si rimanda al sito della Zend Framework:
http://framework.zend.com/manual/en/zend.search.lucene.extending.htmlFiltri [opzionale]Servono per la gestione del processo di tokenizzazione definendo i filtri sui termini tokenizzati.
I filtri servono per la gestione dei documenti sia in fase di indicizzazione che in fase di ricerca. Se si configurano dei filtri per indicizzare un documento e se ne configurano altri per la ricerca, i risultati potrebbero essere diversi da quelli attesi. Di fatto i filtri dovrebbero essere sempre gli stessi per l'indice.
E' possibile non definire nessun tipo di filtro.
I filtri disponibili sono di tre tipi:
- stop-words
- short-words
- custom-fields
stop-words [opzionale]Definisce il file per l'eliminazione delle parole (termini tokenizzati) all'interno del testo da indicizzare.
Il campo richiede il percorso assoluto del file delle stop-words.
Il file deve contenere tutte le parole separate da un ritorno a capo.
Esempio:
/var/www/html/app/mystopwords.txtshort-words [opzionale]Definisce il limite minimo di caratteri del singolo termine. Pertanto settando un limite minimo di 3 caratteri per termine, il sistema non indicizzerà e non considererà nei processi di ricerca tutte quelle parole di due caratteri (come ad esempio: io, tu, li, il, …).
Il sistema permette di definire un limite minimo che va da 2 (due) a 4 (quattro) caratteri.
E' possibile estendere il limite andando a definire nuovi limiti minimi nel file XSD.
custom-fields [opzionale]Definisce la gestione di eventuali filtri personalizzati.
E' permesso integrare più di un filtro.

Ovvero è possibile definire delle proprie classi per tokenizzare il testo . Il tag necessita del "
path" assoluto ove risiede lo script PHP contenente la classe definita nel campo "
class".
Un esempio di analizzatore personalizzato è presente al sito:
http://code.google.com/p/lucene-silverstripe-plugin/