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: Pierrick Brihaye
Subject: Re: [sdx-developers] RE : Gestion de la mémoire
Date: Sun, 19 Jan 2003 16:19:24 +0100

Re,

>> C'est logique, le tableau a été construit *avant*. Pour
>> afficher les 20 premiers résultats, il a fallu autant de
>> temps et de ressources que si tu avais affiché les 20 derniers.

>Ben non, justement. Dans Lucene, un ensemble de 10000 résultats ou de 20
>résultats prennent strictement les mêmes ressources. Idem pour SDX sans
>tri.

Euh... ai-je dis le contraire ? On est bien d'accord qu'en Java, et dans
tous les langages en général, un tableau doit être instancié *avant* d'être
disponible, non ?

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.

> 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.

A+

p.b.






reply via email to

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