sdx-users
[Top][All Lists]
Advanced

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

RE : [sdx-users] Tri par date par défaut


From: Martin Sevigny
Subject: RE : [sdx-users] Tri par date par défaut
Date: Mon, 4 Aug 2003 08:03:04 +0200

Bonjour,

> Lucene renvoie les résultats de recherche triés par pertinence;
> tout autre tri que celui-là est effectué a posteriori, en
> mémoire; par conséquent si on demande un tri par date "par
> défaut" cela présente le risque d'avoir à trier de grands
> ensembles de résultats, ce qui entraîne des temps de réponse
> potentiellement infinis.

Oui. En fait, il est effectué a posteriori par SDX, mais si c'est Lucene
qui le faisait (il y a eu des initiatives dans ce sens, mais rien
d'intégré aux sources Lucene), le problème serait le même : pour trier
selon un autre critère, on doit accéder aux données stockées (champs) de
chaque document, et ça restera toujours lent (du moins si on compare à
la vitesse du tri de pertinence).

> - effectuer un tri par date de façon automatique si et seulement
> si le nombre de résultats est inférieur à un certain nombre, et
> sinon, non (ça j'aimerais bien le faire mais je ne sais pas comment?)

C'est un truc que j'aimerais ajouter à la taglib SDX éventuellement.
L'idée serait de trier seulement les n premiers résultats retournés en
ordre de pertinence, le n pouvant être spécifié par un paramètre SDX,
bien sûr.

Si vous voulez implanter ce que vous décriviez ci-dessus en Java dans
une XSP, ça doit ressembler à quelque chose comme ça:

<sdx:*Query ../> (à noter pas de "execute").
<xsp:logic>
  if ( sdx_results.count() &lt;= 1000 )
  {
    sdx_sorts=new SortSpecification();
    sdx_sorts.addSortKey(sdx_locations.getField("nom du champ"),
SortSpecification.SORT_ORDER_ASCENDANT ou
SortSpecification.SORT_ORDER_DESCENDANT);
  }
</xsp:logic>
<sdx:results/>

Bref, on définit une clé de tri seulement s'il y a moins de 1000
résultats, sinon il n'y en aura pas. Pour que ça marche, ne pas passer
des informations de tri en URL ou dans les paramètres de <sdx:*Query/>.

Je n'ai pas testé, mais le principe est là. Si vous avez quelque chose
du genre qui tourne, ça nous ferait plaisir de le mettre dans la doc SDX
;-)

> - demander à Lucene de retourner directement les résultats triés
> par date.
> 
> C'est sur ce dernier point que j'aimerais surtout avoir des infos:
> il me semble qu'on avait dit que le sujet était à l'étude pour
> Lucene et que ça pourrait être possible bientôt. Est-ce qu'il
> y a des nouvelles de ce côté?

Je pense avoir vu passer récemment sur une liste Lucene (users? dev?) un
message indiquant que quelqu'un avait modifié la structure d'index de
Lucene pour pouvoir trier plus efficacement sur d'autres critères. A
voir, mais ce n'était ni dans Lucene ni dans SDX.

Si vous en savez plus à ce sujet, vous pouvez partager vos remarques
ici, on verra ce qu'on peut en faire pour SDX.

A bientôt,

Martin Sévigny





reply via email to

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