Welcome,
Guest
|
|
Ciao,
alcuni utilizzatori di IFile mi hanno fatto presente che dopo l'indicizzazione dei propri documenti, solo una parte del contenuto è visibile ed è presente nel field "introtext". Di seguito una descrizione della problematica riscontrata ed eventuali altri problemi che si potrebbero verificare durante l'indicizzazione dei documenti. Il contenuto del documento (Field: body) viene solo "indicizzato" e non storicizzato come viene fatto per il field "introtext" (che presenta solo i primi 200 caratteri del testo completo), ovvero si possono effettuare ricerche su tutto il contenuto ma non è possibile visualizzarlo. Questa scelta è stata presa per due motivi ovvero: 1. Storicizzando anche il contenuto, la cartella creata da Lucene, che contiene l'indice, diventerebbe in poco tempo enorme con grande perdita di prestazioni. Di fatto andremmo a "duplicare" lo spazio del disco necessario dato che oltre al file fisico (PDF, DOC, etc) avremmo anche il testo salvato sul disco, ed in alcuni casi di hosting lo spazio è costoso. 2. Dato che la libreria indicizza solo documenti PDF, DOC etc.. a nostro avviso non era necessario rindondare del testo che è facilmente recuperabile visualizzando il file stesso che lo contiene utilizzando i field: root, name, filename, path etc. Dalla versione 1.1.3 di IFile è ora possibile definire il tipo di indicizzazione dei default Fields utilizzati da IFile. Questo permetterà di poter gestire in modo indipendente, senza dover modificare il codice, i singoli fields durante il processo di indicizzazione. In alcuni casi la libreria tronca, durante l'indicizzazione, il testo del documento. Questo potrebbe essere provocato dal tipo di analyzer utilizzato. Va fatto presente che IFile utilizza a sua volta le librerie di Zend Search Lucene per la tokenizzazione e indicizzazione dei contenuti (ovvero la trasformazione del testo recuperato dal documento in semplici parole e la memorizzazione di queste in una struttura ben definita - il processo è diverso se utilizziamo l'interfaccia MySqli) e a volte (questo è capitato anche a noi) utilizzando il tipo di Encoding "UTF-8" Zend Search Lucene ritorna solo una porzione di testo. Questo perchè l'analyzer cerca di convertire il contenuto del testo in UTF-8 utilizzando la funzione "iconv". La funzione "iconv" permette passandogli dei parametri, di ignorare (o trasformare) i caratteri che non fanno parte del range del charset passato. Zend ha scelto di utilizzare la iconv, senza questi parametri. Questo comporta che se durante l'indicizzazione del contenuto è presente un carattere diverso da quelli che si aspetta la funzione iconv, questa genera un E_NOTICE (trovato carattere illegale) e tronca il testo al carattere non corretto. Gli E_NOTICE non precludono il blocco del processo e quindi IFile continua indicizzando il testo incompleto ritornato dalla libreria della Zend. C'è un modo, molto manuale, per risolvere questo problema, e sarebbe quello di intervenire direttamente sugli script del framework della Zend andando ad inserire nella chiamata alla "iconv" il parametro di IGNORE per permettergli di ignorare il carattere e continuare con la conversione. Questo però è possibile se si può intervenire direttamente sui file del framework della Zend. I file che utilizzano la iconv senza il parametro ignore sono: Zend\Search\Lucene\Analysis\Analyzer\Common\Utf8.php - function reset() Zend\Search\Lucene\Analysis\Analyzer\Common\Utf8Num.php - function reset() sostituendola con: $this->_input = iconv($this->_encoding, 'UTF-8//IGNORE', $this->_input); Gli atri analyzer (Text e TextNum) utilizzano invece il parametro //TRANSLIT che cerca di sostituire il carattere nell'encoding richiesto. Un unico avvertimento, questo meccanismo potrebbe provocare, su alcuni termini, la non corretta indicizzazione (potresti avere ad esempio la parola "potrà" indicizzata come "potr") e quindi la difficoltà di ricercarla. |
If you like, if it was useful, consider a donation, Thanks
Se vuoi, se ti siamo stati utili, considera una donazione, Grazie Help us by voting our extensions on Joomla.org: JiFile JoomPhoto Mobile Easy Language
Last Edit: 21 Feb 2012 01:43 by Giampaolo.Reason: Evidenziato il paragrafo del troncamento del testo
The administrator has disabled public write access.
The following user(s) said Thank You: nicola
|
|
grazie mille e complimenti per il componente
|
The administrator has disabled public write access.
|
If you not change browser settings, you agree to it. Learn more