IFILE_INDEXING_INTERFACE

Di seguito verrà descritta l’interfaccia di IFile. Tutti i metodi si basano sull’interfaccia LUCENE.
La maggior parte dei metodi non dipendono dall’interfaccia. In caso un metodo abbia comportamenti divesi verrà evidenziato in riferimento all’interfaccia.

METODO PER AGGIUNGERE UN CAMPO PERSONALIZZATO

Permette di aggiungere uno o più campi personalizzati all’indicizzazione del documento.

Metodo:
void addCustomField (string $field, string $term, string $type)

Descrizione dei parametri di input :

ParametroDescrizioneTipoDefault
$field Nome del campo String
$term Valore del campo String
$type Tipo di indicizzazione. I tipi possibili sono: • FIELD_TYPE_KEYWORD • FIELD_TYPE_UNINDEXED • FIELD_TYPE_BINARY • FIELD_TYPE_TEXT • FIELD_TYPE_UNSTORED

I tipi sono definiti come costanti della classe IFile_Indexing_Lucene    String   
String

 

Per l'interfaccia MYSQLI si sono definti i type in questo modo:
FIELD_TYPE_KEYWORD:
FIELD_TYPE_TEXT:
FIELD_TYPE_UNSTORED:
Creazione di un campo di tipo "TEXT" indicizzato (FULLTEXT)

FIELD_TYPE_UNINDEXED:
Creazione di un campo di tipo "TEXT" NON indicizzato

FIELD_TYPE_BINARY:
Creazione di un campo di tipo "BLOB" NON indicizzato


METODO PER AGGIUNGERE UN DOCUMENTO ALL’INDICE

Permette di aggiungere un documento all’indice.

Metodo:
void addDocument ([ $doc = null])

Descrizione dei parametri di input :

ParametroDescrizioneTipoDefault
$doc Parametro facoltativo. Il parametro dovrà essere passato se si vuole effettuare una indicizzazione manuale del documento. Zend_Search_Lucene_Document NULL


METODO PER DEFINIRE L’AUTOCOMMIT DEI DOCUMENTI

Configura commit automatico dei documenti nel processo di indicizzazione.

Metodo:
void autoCommit ( boolean $autocommit)

Descrizione dei parametri di input :

ParametroDescrizioneTipoDefault
$autocommit Se true il sistema commetterà automaticamente ad ogni indicizzazione. Boolean #

Per l'interfaccia MYSQLI l’auto-commit non è necessario dato che per letabelle MyISAM non esistono transazioni.

METODO PER COMMITARE I DOCUMENTI NELL'INDICE

Committa i documenti nel processo di indicizzazione .

Metodo:
void commit ()

Per l’interfaccia MYSQLI il commit è automatico dato che per letabelle MyISAM non esistono transazioni.

METODO PER RECUPERARE DEL NUMERO DI DOCUMENTI INDICIZZATI

Ritorna il numero di documenti inseriti compresi quelli marcati come cancellati.

Metodo:
integer count ()

METODO PER CANCELLARE UN DOCUMENTO DALL’INDICE

Permette di cancellare un documento dall’indice.

Il metodo "delete" in realtà marca il documento come cancellato ma non lo cancella fisicamente. L'eliminazione fisica del documento viene fatta nel momento in cui l'indice viene ottimizzato.

Metodo:
void delete (integer $id)

Descrizione dei parametri di input :

ParametroDescrizioneTipoDefault
$id ID del documento all'interno dell'indice. Integer

METODO PER CANCELLARE TUTTI I DOCUMENTO DALL’INDICE

Cancella l'indice e ritorna il numero di documenti cancellati. Se viene passato TRUE cancella solo tutti i documenti dall'indice e ritorna il numero di documenti cancellati altrimenti elimina completamente l'indice.

Metodo:
integer deleteAll ([bool $doc = false])

Descrizione dei parametri di input :

ParametroDescrizioneTipoDefault
$doc Se settato a TRUE cancella solo i documenti boolean  False

METODO PER RECUPERARE TUTTI I DOCUMENTO DALL'INDICE

Ritorna un array contenente gli oggetti documento Zend_Search_Lucene_Document di tutti i documenti indicizzati. Di default sono esclusi tutti i documenti segnati come cancellati.

Metodo:
array getAllDocument ([boolean $deleted = false])

Descrizione dei parametri di input :

ParametroDescrizioneTipoDefault
$deleted Se settato a TRUE ritorna anche i documenti marcati come cancellati. boolean False

METODO PER RECUPERARE DEI CAMPI PERSONALIZZATI

Ritorna l’array dei campi personalizzati che si vuole aggiungere al documento.

Metodo:
array getCustomField ()

METODO PER RECUPERARE IL CAMPO DI DEFAULT DI RICERCA

Ritorna il campo (field)  di default su cui ricercare i termini.

Metodo:
string getDefaultSearchField ()

METODO PER RECUPERARE UN DOCUMENTO DALL’INDICE

Ritorna l'oggetto documento Zend_Search_Lucene_Document.
Ritorna un eccezione Zend_Search_Lucene_Exception se l’id passato non e' presente nel range degli id dell'indice.

Metodo:
Zend_Search_Lucene_Document getDocument (integer $id)

Descrizione dei parametri di input :

ParametroDescrizioneTipoDefault
$id ID del documento all'interno dell'indice. integer

METODO PER RECUPERARE I FIELDS DELL’INDICE

Ritorna un array contenente tutti i fields (campi) definiti all’interno dell’indice.

Metodo:
array getFieldNames ([boolean $indexed = false])

Descrizione dei parametri di input :

ParametroDescrizioneTipoDefault
$indexed Se settato a TRUE Filtra l'array ritornando solo i fields (campi) che sono utilizzati come indici. Boolean False

METODO PER RECUPERARE LE INFO SUL FILE DA INDICIZZARE

Ritorna un oggetto IFileInfoFile, contenente le informazioni sul file che si sta cercando di indicizzate in quel momento e che si è settato con il metodo setIndexFile().

Metodo:
IFileInfoFile getIndexFile ()

METODO PER RECUPERARE IL LIMITE MASSIMO DI RISULTATI

Ritorna il numero limite di risultati che possono ritornare da una ricerca.

Metodo:
integer getResultLimit ()

METODO PER VERIFICARE SE ESISTONO DOCUMENTI CANCELLATI

Ritorna true se all'interno dell’indice esistono documenti cancellati.

Metodo:
boolean hasDeletions ()

METODO PER VERIFICARE L'ESISTENZA DI UN TERMINE

Verifica se un determinato termine è presente all'interno dell'indice. Se settato il filed (campo) la verifica verrà fatta solo all'interno del field specificato.

Metodo:
boolean hasTerm (string $term, [string $field = null])

Descrizione dei parametri di input :

ParametroDescrizioneTipoDefault
$term Termine (parola o token) da ricercare all'interno dell'indice. string
$field Field (campo) in cui ricercare il termine. Se non settato il termine viene ricercato in tutto l'indice. string NULL

METODO PER VERIFICARE SE UN DOCUMENTO E’ CANCELLATO

Verifica se un documento è cancellato all’interno dell’indice, ovvero è stato marcato come cancellato con il metodo delete($id).

Metodo:
boolean isDeleted ( $id)

Descrizione dei parametri di input :

ParametroDescrizioneTipoDefault
$id ID del documento all'interno dell'indice. integer

METODO PER RECUPERARE IL NUMERO DI DOCUMENTI

Ritorna il numero di documenti all’interno dell’indice senza considerare quelli marcati come cancellati.

Metodo:
integer numDocs ()

METODO PER OTTIMIZZARE L’INDICE

Permette di ottimizzare l’indice andando a cancellare definitivamente tutti i documenti marcati come cancellati e ricostruendo l’indice per migliorarne le performance.

Metodo:
void optimize ()

METODO PER LA RICERCA DEI TERMINI

Esegue la query di ricerca dei termini all’interno dell’indice. Il metodo necessita come parametro di un oggetto IFileQueryRegistry.
Ritorna un array di oggetti Zend_Search_Lucene_Search_QueryHit  o un array vuoto in caso la query non presenta match dei termini ricercati all’interno dell’indice.

Metodo:
mixed query (IFileQueryRegistry $query)

Descrizione dei parametri di input :

ParametroDescrizioneTipoDefault
$query Oggetto contenente i termini di ricerca. IFileQueryRegistry

METODO PER LA RICERCA BOOLEAN DEI TERMINI

Esegue la query di ricerca dei termini all’interno dell’indice potendoli ricercare in OR o AND. Il metodo necessita come parametro di un oggetto IFileQueryRegistry il quale deve a sua volta contenere oggetti IFileQueryRegistry.  
Ritorna un array di oggetti Zend_Search_Lucene_Search_QueryHit  o un array vuoto in caso la query non presenta match dei termini ricercati all’interno dell’indice.

Metodo:
mixed queryBoolean (IFileQueryRegistry $query)

Descrizione dei parametri di input :

ParametroDescrizioneTipoDefault
$query Oggetto contenente i termini di ricerca. IFileQueryRegistry

METODO PER LA RICERCA FUZZY DEI TERMINI

Esegue la query di ricerca dei termini all’interno dell’indice potendoli ricercare con la metodologia fuzzy.  E’ possibile ricercare un solo termine nella ricerca fuzzy.  
Ritorna un array di oggetti Zend_Search_Lucene_Search_QueryHit  o un array vuoto in caso la query non presenta match dei termini ricercati all’interno dell’indice.

Metodo:
mixed queryFuzzy (IFileQueryRegistry $query)

Descrizione dei parametri di input :

ParametroDescrizioneTipoDefault
$query Oggetto contenente i termini di ricerca. IFileQueryRegistry

METODO PER LA RICERCA CON LA SINTASSI DI LUCENE /MYSQL

Esegue la query di ricerca dei termini utilizzando stringhe i ricerca. Questo metodo, per l’interfaccia LUCENE a tempi di risposta più lunghi rispetto agli altri metodi di ricerca e per questo andrebbe utilizzato solo se non è possibile ottenere lo stesso risultato utilizzando gli altri metodi.

In questo metodo è possibile utilizzare la sintassi di ricerca di Lucene per l’interfaccia LUCENE http://framework.zend.com/manual/en/zend.search.lucene.query-language.html e la sintassi di MySql per l’interfaccia MYSQLI http://dev.mysql.com/doc/refman/5.5/en/fulltext-natural-language.html .

Metodo:
mixed queryParser ($query)

Descrizione dei parametri di input :

ParametroDescrizioneTipoDefault
$query Stringa da ricercare all'’interno dell'indice. string

METODO PER LA RICERCA DI FRASI

Esegue la query per la ricerca di intere frasi all’interno dell’indice.
I fields (campi) devono essere gli stessi per tutti i termini settati nell’oggetto IFileQueryRegistry, altrimenti viene generata una eccezione di tipo Zend_Search_Lucene_Exception.

Metodo:
mixed queryPhrase (IFileQueryRegistry $query)

Descrizione dei parametri di input :

ParametroDescrizioneTipoDefault
$query Oggetto contenente i termini di ricerca. IFileQueryRegistry

METODO PER LA RICERCA IN UN RANGE DI TERMINI

Esegue la query per la ricerca di un range di termini all’interno dell’indice.
 Puo' essere ricercato solo un range di termini per lo stesso field nella ricerca   (ovveto solo i termini di "From" e "To")  altrimenti viene generata una eccezione di tipo IFile_Exception.

Metodo:
mixed queryRange (IFileQueryRegistry $query)

Descrizione dei parametri di input :

ParametroDescrizioneTipoDefault
$query Oggetto contenente i termini di ricerca. IFileQueryRegistry

METODO PER LA RICERCA CON CARATTERI JOLLY (WILDCARD)

Esegue la query per la ricerca di termini utilizzando caratteri jolly (wildcard).
Puo' essere ricercato solo un unico termine nella ricerca wildcard  altrimenti viene generata una eccezione di tipo IFile_Exception.

Metodo:
mixed queryWildcard (IFileQueryRegistry $query)

Descrizione dei parametri di input :

ParametroDescrizioneTipoDefault
$query Oggetto contenente i termini di ricerca. IFileQueryRegistry

METODO PER SETTARE IL CAMPO DI DEFAULT DI RICERCA

Ritorna il campo (field)  di default su cui ricercare i termini. Se il campo viene settato, quando si omettere il nome del campo nelle query di ricerca il sistema ricercheà il termine all’interno del campo di default.

Metodo:
void setDefaultSearchField (string $field)

Descrizione dei parametri di input :

ParametroDescrizioneTipoDefault
$field Field (campo) che verrà utilizzato come field di default nelle ricerche se il field è omesso. String

METODO PER SETTARE IL FILE DA INDICIZZARE

Setta il file che deve essere processato per l’indicizzazione.

Metodo:
void setIndexFile ( $indexFile)

Descrizione dei parametri di input :

ParametroDescrizioneTipoDefault
$indexFile Percorso del file da indicizzare. String

METODO PER SETTARE IL LIMITE MASSIMO DI RISULTATI

Setta il limite massimo di risultati che la ricerca può ritornare.

Metodo:
void setResultLimit (integer $limit)

Descrizione dei parametri di input :

ParametroDescrizioneTipoDefault
$limit Limite massimo di risultati per la ricerca. integer

METODO PER SETTARE IL TIPO DI ORDINAMENTO DEI RISULTATI

Setta il tipo di ordinamento dei risultati che restituisce una query.

Metodo:
void setSort (string $field, [string $type = SORT_REGULAR], [string $order = SORT_ASC])

Descrizione dei parametri di input :

ParametroDescrizioneTipoDefault
$field Nome del Field (campo) su cui operare l'ordinamneto. String
$type Tipo di ordinamento: • SORT_REGULAR • SORT_NUMERIC • SORT_STRING. Integer SORT_REGULAR
$order Ordinamento ascendente o dicendente: • SORT_ASC • SORT_DESC Integer SORT_ASC

METODO PER RIPRISTINARE UN DOCUMENTO CANCELLATO

Il metodo non è ancora implementato dalle librerie Zend Search Lucene, pertanto non è implementato per l’interfaccia LUCENE.

Metodo:
void undeletedAll ()