Dettaglio configurazione iFile

config 64Di 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.0
Definisce 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:

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.

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:

Per quest'ultimo, "custom-default", il sistema presenta due nuovi campi che permettono di definire un tipo di analizzatore del testo personalizzato.

analyzer

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.html

Filtri  [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 [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.txt

short-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.

custom filters

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/