Forum

JiFile per Joomla!

JIFile
JiFile è una componente per Joomla! che permette di indicizzare il contenuto dei file(PDF, DOC, ecc.) per poter effettuare delle ricerche al loro interno.

Scopri di più...  Demo

JoomPhoto Mobile

JPhotoMobile
JoomPhoto Mobile è una componente per Joomla! che ti permette di condividere le foto dal tuo dispositivo Android sul tuo portale Joomla!.

Scopri di più...  Demo

iFile Framework

IFile
IFile è un framework open source scritto interamente in PHP, permette l'indicizzazione dei contenuti testuali di un documento (DOC, PDF, EXCEL, etc) e una rapida ricerca all'interno degli stessi.

Scopri di più...  Demo

Easy Language

EasyLanguage
Easy Language è un plugin per la gestione semplice ed immediata di testi multilingua in ogni parte possibile di joomla, articoli, componenti, moduli, metadata, template, altri componenti(esempio K2) ecc.

Scopri di più...

Article Book Effect

Article Book Effect
Visualizza gli articoli di Joomla con l'effetto volta pagina di un libro. Questo plugin consente di visualizzare il contenuto di un articolo Joomla come un vero e proprio libro o una rivista, utilizzando tutti i vantaggi di HTML5

Scopri di più...  Demo

 

Fototessera

Article Book Effect
La più famosa Android App che ti permette di stampare le foto tessere per i tuoi documenti con il tuo smartphone Android, in modo semplice ed intuitivo.

Scopri di più...

 

Ombra pazza 3D

Ombra pazza 3D
Ombra Pazza è il puzzle game 3D frenetico e divertente per Android! Prova a ruotare le forme portandole nella posizione delle proprie ombre senza mai fallire! Risolvi una dopo l'altra tutte le combinazioni dei livelli di gioco.

Scopri di più...

 

Admin Countdown

Admin Countdown
Modulo per Joomla! 2.5 e 3.x visualizza nella parte di amministrazione del sito, un timer con il conto alla rovescia del tempo rimanente della tua sessione.

Scopri di più...  Demo

 
Benvenuto, Ospite
Nome utente: Password: Ricordami

ARGOMENTO: Field "introtext" e indicizzazioni troncate

Field "introtext" e indicizzazioni troncate 20/12/2011 16:10 #15

  • Giampaolo
  • Avatar di Giampaolo
  • OFFLINE
  • Administrator
  • Messaggi: 464
  • Ringraziamenti ricevuti 42
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
Ultima modifica: 21/02/2012 01:43 da Giampaolo.Motivo: Evidenziato il paragrafo del troncamento del testo
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.
I seguenti utenti ringraziano:: nicola

Re: Field "introtext" e indicizzazioni troncate 20/02/2012 16:31 #207

  • Luca
  • Avatar di Luca
  • OFFLINE
  • Fresh Boarder
  • Messaggi: 4
grazie mille e complimenti per il componente
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.