sdx-developers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE : [sdx-developers] RE : Gestion de la mémoire


From: Martin Sevigny
Subject: RE : [sdx-developers] RE : Gestion de la mémoire
Date: Tue, 21 Jan 2003 09:21:41 +0100

Bonjour,

> Je disais simplement, que, si on veut les 20 premiers 
> résultats, on devrait pouvoir les afficher plus rapidement 
> que si en en veut 10.000. Ca pourrait se faire via une 
> LinkedList ou un truc comme ça avec du code (fictif) comme ça :
> 
> LinkedList results = new LinkedList();
> Result currentResult;
> Result firstOfPage;
> int count = 0;
> SearchEngine.search("a query that fetches a lot of results"); 
> while SearchEngine.searching() {
>     //ici, on est synchronisés par le SearchEngine
>     result = SearchEngine.fetch());
>     if (result == null) break;
>     results.add(result);
>     count++;
>     if ((count % 20) == 1) firstOfPage = result;
>     //Fin de page : étudier un thread dédié
>     if ((count % 20) == 0) 
> DoSomethingWithThisResultPageWhileSearchIsGoingOn(firstOfPage,
>  results); }
> 
> A la méthode 
> DoSomethingWithThisResultPageWhileSearchIsGoingOn de décider 
> ce qu'elle veut faire des résultats et -pourquoi pas ? - de 
> vider la LinkedList.

Je comprends. Mais intuitivement, je pense que ce qui est le plus rapide
dans tout cela, c'est la méthode SearchEngine.search() (de Lucene à tout
le moins). Et peu importe le nombre de résultats. Et peu importe le
nombre de documents dans la base. Alors je ne suis pas certain si cette
optimisation donne vraiment quelque chose.

> > Lucene n'a pas besoin de connaître les 10000 documents pour 
> savoir que 
> > les 20 premiers sont les plus pertinents. C'est la raison.
> 
> On est aussi d'accord. Je partage ton avis sur les dernières 
> avancées dans ce domaine... et sur l'opportunité qu'il y a à 
> cabler ça dans SDX.

En fait, ce n'est pas une avancée, c'est un principe de base depuis les
débuts de Lucene.

A bientôt,

Martin Sévigny





reply via email to

[Prev in Thread] Current Thread [Next in Thread]