Groupe 2E (bureau numérique)

Date de création : 22/07/2003
Dernière modification : 09/09/2003
Diffusion : internet

Canal de recherche Google

Présentation de la maquette

Voici le canal de recherche avec tout d'abord l'interface qui permet de lancer une recherche soit sur Internet, soit sur un site spécifique comme celui de l'université, ici sur le site de l'UVHC.
interface de recherche

Puis les résultats de la même recherche "esup-portail" avec les deux types de recherches possibles, la première image étant le résultat de la recherche sur internet, et la seconde celle de la recherche sur le site de l'université.
recherche internet recherche uvhc

Installation

L'archive

Une première version est disponible ici

Demande de clef

Pour obtenir une clef, qui est nécessaire pour pouvoir utiliser le service web google, il faut suivre les instructions données à la page :
https://www.google.com/accounts/NewAccount. On obtient l'interface donnée à la figure suivante.
demande de clef

Une fois cette clef obtenue, on peut installer le service sur uPortal. Attention : d'après les termes d'utilisation des services google, la réponse ne peut pas être mise en forme sans préciser que la recherche a été effectuée par google. Les termes d'utilisation sont donnés à l'adresse :
https://www.google.com/accounts/TermsOfService.
Il faut accepter ces termes pour créer son compte et obtenir une clef.

Publication du canal

  1. Mettre à jour le build.properties.
  2. ant deploy, permet de compiler et de deployer les fichiers dans le serveur d'applications.
  3. Redémarrer si nécessaire le serveur d'applications pour que les nouvelles classes soient prises en compte.
  4. Publication du canal :
Si le paramètre nomuniv n'est pas renseigné, l'affichage sera "Recherche sur le site de l'université", s'il est renseigné, ce sera alors par exemple pour nomuniv=l''UVHC : "Recherche sur le site de l'UVHC". Comme le montre l'exemple, il faut doubler les apostrophes puisque uPortal ne sait pas enregistrer le paramètre dans sa base s'il n'y en a qu'un (petit bug dû à l'utilisation de l'apostrophe dans le SQL).

Retrait du canal

Pour retirer le canal il faut le déplublier via l'interface web d'uPortal. Puis pour enlever les classes, etc... il faut utiliser ant undeploy à partir du répertoire source du canal. Cela enlève toutes les classes, feuilles de style, librairie et image relatives à ce canal.

Le web-service Google

Voici les principales instructions à utiliser pour faire une recherche à l'aide du web service google.
//Initialisation du service
	GoogleSearch s = new GoogleSearch();
//On donne la clef pour vérifier si on est bien enregistré
	s.setKey(key);
	s.setStartResult(0);
//le nombre maximum de résultats souhaité
	s.setMaxResults(10);
//La requête
	s.setQueryString(''recherche à effectuer'');
//On effectue la recherche
	GoogleSearchResult r = s.doSearch();
//On récupère la réponse
	r.getSearchQuery();
//Le temps de réponse
	r.getSearchTime();
//Pour chaque élément de réponse
	GoogleSearchResultElement[] elements = r.getResultElements();
	if(r.getStartIndex() > 0){
		for(int i = r.getStartIndex()-1; i < r.getEndIndex(); i++){
			GoogleSearchResultElement result = elements[i];
//on récupère l'url
			result.getURL();
//le titre
			result.getTitle();
//le snippet
			result.getSnippet();
//l'éventuel nom du répertoire google
			if (result.getDirectoryTitle() != null && result.getDirectoryTitle().length()>1 ) {
				result.getDirectoryTitle();
			}
//les catégories de l'éventuel répertoire
			GoogleSearchDirectoryCategory cats;
			if ( ( cats=result.getDirectoryCategory() ) != null && cats.getFullViewableName().length()>1 ){
				cats.getFullViewableName();
			}
//Le résumé de la réponse
			if (result.getSummary() != null && result.getSummary().length()>1 ){ 
				result.getSummary();
			}
		}
	}
La réponse est ensuite mise en forme en respectant les termes d'utilisation. Dans notre cas elle est envoyée au format XML, puis traitée par une feuille de style pour être affichée au format donné au début du document.