sdx-users
[Top][All Lists]
Advanced

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

Re: [sdx-users] sdxall:1 et hilite


From: Pierrick Brihaye
Subject: Re: [sdx-users] sdxall:1 et hilite
Date: Mon, 23 Jun 2003 16:51:28 +0200
User-agent: Mozilla/5.0 (Windows; U; Win98; fr-FR; rv:1.0.2) Gecko/20030208 Netscape/7.02

Bonjour,

Marjorie Burghart a écrit:

Une idée pour éviter ça ?

A vrai dire, je ne vois pas l'intérêt de surligner quand le champ de recherche est une "métadonnée SDX" (comme sdxdocid, sdxall...) car ces métadonnées ne proviennent pas a priori du document. Peut-être faudrait-il moduler l'utilisation systématique de "true" dans l'attribut highlite ?

Quoi qu'il en soit, la problématique est diablement complexe car :

1) Lucene ne nous offre pas d'API simples pour retrouver simplement les termes utilisés par une Query. La version livrée par SDX est un patch (apparemment incompatible avec la version actuelle de Lucene : 1.3RC1).

2) Il est par définition impossible de faire un mapping entre un document d'origine car XSL ne conserve que rarement la structure (quel en serait l'intérêt ?). SDX utilise la flux SAX du document et, lorsqu'il rencontre une valeur de terme issue de la query, il la surligne. On surligne ainsi tous les 1 si la query est sdxall:1... pour le meilleur et pour le pire.

Note : distinguer "terme" = champ + valeur de "valeur de terme". SDX surligne des *valeurs*.

Les solutions sont complexes mais relativement simples à énoncer :

1) il faudrait que Lucene soit capable de restituer facilement des listes de termes. En gros, il y a 2 écoles :

a) on va associer la liste de termes à la requête. Rapide (car une requête bâtit naturellement une liste de termes à rechercher) mais gourmand en mémoire : un terme reste en mémoire même si on n'en a plus besoin par la suite. b) on va associer la liste de termes au résultat. On n'a que les termes pertinents mais leur recherche est longue.

Il y a eu de gros débats sur la liste lucene-dev au mois de mars là-dessus mais rien de concret n'a abouti :-(

2) quelle que soit la façon de retrouver les termes, en ce qui concerne le surlignement du document, il faudrait passer par une *retransformation* du document et mapper les termes trouvés sur les noeuds du document d'origine, probablement grâce à XPointer.

C'est lourd mais c'est le prix à payer pour un surlignage "pertinent". Ca pose également le problème de ce que fait réellement le pipeline d'indexation. D'aucuns s'en servent pour faire autre chose que de l'indexation. Relancer ce pipeline tel quel pourrait donc avoir des circonstances impévues...

Pour terminer : existe-t-il des processeurs XSLT capables de générer un tel mapping entre un document et sa transformation ?

A bientôt,

--
Pierrick Brihaye, informaticien
Service régional de l'Inventaire
DRAC Bretagne
mailto:address@hidden





reply via email to

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