Utilizzare le interfacce
-
Published on Friday, 28 October 2011
In questo capitolo verranno presentate le interfacce messe a disposizione dalla libreria IFile definendone punti di forza e punti di debolezza, per la gestione del processo di indicizzazione e ricerca dei documenti all’interno dell’indice.
Tutte le "interfacce" di IFile implementano l'interfaccia
IFile_Indexing_Interface
pertanto, a meno di piccolissimi cambiamenti, sarà molto semplice riutilizzare il codice già creato per una "interfaccia" per un'altra.
LUCENE INTERFACE
L'interfaccia si basa su Lucene e sulle librerie di Zend_Search_Lucene di Zend Framework.
Punti di forza:
- Possibilità di definire tipi diversi per l’indicizzazione di Filed e pertanto limitare la dimensione dell'indice.
- Possibilià di effettuare qualsiasi tipo di ricerca all’interno dell'indice.
- E' possibile configurare e implementare ogni tipo di analyzer a seconda delle proprie esigenze.
- Numero di filtri illimitato per il filtraggio dei token da indicizzare.
Punti di debolezza:
- Le dimensioni dell’indice gestito da Zend Search Lucene non può superare i 2GB di dimensione.
- Tempi di indicizzazione dei contenuti molto lenti in funzione del tipi di Analyzer e dalla quantità di filtri utilizzati.
- Tempi di risposta durante le ricerche molto lenti in funzione del tipi di Analyzer e dalla quantità di filtri utilizzati.
MYSQLI INTEFACE
L'interfaccia si basa sulla Full-Text di MySql per engine MyISAM utilizzando l’estensione di mysqli di PHP.
A differenza dell’interfaccia LUCENE, la configurazione del processo di indicizzazione va fatta direttamente sul server MySql.
Gli indici per l’interfaccia MYSQLI, a differenza dell’interfaccia LUCENE che partono dal numero zero (0), partono dal numero uno (1).
Ad esempio se si vuole modificare il limite minimo di caratteri che una parola (token) deve contenere per essere indicizzata (short-words), si dovrà agire sul file di configurazione di MySql (my.cnf) ed aggiungere:
[mysqld]
ft_min_word_len = 3
Per maggiori informazioni visita:
http://dev.mysql.com/doc/refman/5.5/en/fulltext-search.htmlPunti di forza:
- I tempi di indicizzazione dei contenuti ridotti.
- Tempi di risposta durante le chiamate di ricerca sono più rapidi.
Punti di debolezza:
- Tutti i field vengono creati come campi MyISAM all’interno del DB e definiti come campi Full-Text.
- Le dimensioni del DB possono crescere esponenzialmente dato che tutti i contenuti sono salvati.
- Alcuni tipi di ricerche non sono possibili (esempio RANGE) perché non supportate dall’engine.
- L'analyzer è unico e gestito dall’engine di MySql
- Numero di filtri limitati a quelli configurati su MySql