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: Ricerca Multi Termine

Ricerca Multi Termine 03/04/2012 17:40 #301

  • trullox
  • Avatar di trullox
  • OFFLINE
  • Fresh Boarder
  • Messaggi: 9
Ciao,
non mi è chiaro come posso fare una ricerca multitermine.
Utilizzo l'interfaccia Mysqli. I miei file sono indicizzati perciò nel database.
Nel form di ricerca inserisco delle parole e tramite un radiobutton decido se legarle con AND oppure OR.
La ricerca dei termini deve essere fatta su due campi della tabella dell'indice, e cioè: name e body.
In questo modo effettuo una ricerca sia sul nome del file che all'interno del contenuto del file.
La ricerca in OR la faccio in questo modo:
$ifileQueryRegistry = new IFileQueryRegistry();
foreach($parole as $parola){ //scorro i termini
	$ifileQueryRegistry->setQuery($parola, 'name', IFileQuery::MATCH_OPTIONAL);
	$ifileQueryRegistry->setQuery($parola, 'body', IFileQuery::MATCH_OPTIONAL);	
}
// definizione dell'ordinamento
$ifile->setSort('key', SORT_STRING, SORT_DESC);	
 
// chiamata al metodo di ricerca Multi-temine
$result = $ifile->query($ifileQueryRegistry);
le varie parole vengono legate con MATCH_OPTIONAL e l'OR viene fatto sia tra varie parole, sia tra i campi name e body.

La ricerca in AND è necessario che leghi in OR le due condizioni dei campi. Per me la ricerca è in OR se fatta su nome del file o contenuto, però deve essere in AND sui differenti termini.
L'avevo impostata così:
for($i=0; $i<count($parole); $i++){
	$ifileQueryRegistry_01 = new IFileQueryRegistry();
	$ifileQueryRegistry_01->setQuery($parole[$i], 'name', IFileQuery::MATCH_OPTIONAL);
	$ifileQueryRegistry_01->setQuery($parole[$i], 'body', IFileQuery::MATCH_OPTIONAL);
	$ifileQueryRegistry->setQuery($ifileQueryRegistry_01, null, IFileQuery::MATCH_REQUIRED);
}
a causa del null nell'ultima riga non funziona, però su qualche esempio l'avevo trovato scritto.
Mi date dei suggerimenti per realizzare ciò che voglio fare?

grazie
Andrea
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

Re: Ricerca Multi Termine 03/04/2012 18:03 #302

  • trullox
  • Avatar di trullox
  • OFFLINE
  • Fresh Boarder
  • Messaggi: 9
d'altra parte non riesco neanche a capire perché questo codice sembra non restituire i risultati in AND.
foreach($parole as $parola){ //scorro i termini
	$ifileQueryRegistry->setQuery($parola, 'name', IFileQuery::MATCH_REQUIRED);
	//$ifileQueryRegistry->setQuery($parola, 'body', IFileQuery::MATCH_REQUIRED);
}
In pratica, avendo commentato la riga di ricerca sul body, dovrebbe trovare solo i file che contengono nel nome tutte le parole inserite. In realtà basta che ce ne sia una sola e il risultato viene restituito.

Inoltre: è possibile combinare più tipologie di ricerca? oltre questa multitermine mi piacerebbe mettere insieme anche quella wildcard con i caratteri speciali.
e poi: con la ricerca parser è possibile utilizzare la sintassi MYSQL FULLTEXT per ottenere tutti questi tipi di ricerca?

ciao
Andrea
Ultima modifica: 03/04/2012 18:09 da trullox.
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

Re: Ricerca Multi Termine 03/04/2012 18:32 #303

  • Giampaolo
  • Avatar di Giampaolo
  • OFFLINE
  • Administrator
  • Messaggi: 465
  • Ringraziamenti ricevuti 42
Ciao Andrea,
potresti inviarmi un caso d'uso reale per verificare il tuo problema?

Ad esempio potresti inviarmi anche tramite mail

info[at]isapp.it

un export di un paio di righe del DB e la configurazione di ifile in modo che possa fare anche io un paio di test.
con la ricerca parser è possibile utilizzare la sintassi MYSQL FULLTEXT per ottenere tutti questi tipi di ricerca?

utilizzando la ricerca parser è possibile scrivere direttamente le regole di ricerca FULL-TEXT di mysql.

Esempio:
// TEST Query PARSER
// Per l'utilizzo del metodo di ricerca PARSER si può utilizzare
// la sintassi di ricerca per le FULLTEXT di MySql
$search = "MATCH(body) AGAINST ('zend')";
// definizione dell'ordinamento
$ifile->setSort('key', SORT_STRING, SORT_DESC);		
// chiamata al metodo di ricerca Parser
$result = $ifile->queryParser($search);
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: 03/04/2012 18:33 da Giampaolo.
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.