sdx-users
[Top][All Lists]
Advanced

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

RE : [sdx-users] questions de débutant


From: Martin Sevigny
Subject: RE : [sdx-users] questions de débutant
Date: Mon, 3 Mar 2003 20:50:14 +0100

Bonjour,

> 1)  troncatures
> dans mon formulaire de recherche "par champs" (recherche linéaire) je 
> constate que, quel que soit l'opérateur,  la requête n'est 
> traitée (qque 
> chose dans la *.xsp2sdx) que si on a saisi dans le formulaire une * 
> (troncature, qui équivaut à recherche de toutes les 
> valeurs...) dans chacun 
> des champs précédant celui où une vraie chaîne de caractères 
> est entrée. je sais, le niveau de cette remarque... mais 
> l'utilisateur moyen va avoir 
> un pb, et peut-être le temps de réponse s'allonger (?)

Un exemple concret? Je ne suis pas certain de bien suivre cette
explication.

> d'autres pbs avec le "mélange majuscules-troncatures" (SimpleQuery ou 
> LinearQuery) : sur un document XML contenant la chaîne 
> "Dupont", la requête 
> Dupont fonctionne, dupont aussi, DUPONT aussi, dup* itou, 
> mais DUP* ne 
> retourne pas de résultat. Mais je crois que ça a déjà été 
> signalé autre cas plus gênant : Ci* ne donne rien, alors que 
> les documents XML 
> contiennent beaucoup de noms propres ou de prénoms commençant 
> par "Ci" (si, 
> c'est ça)

Oui, c'est une FAQ, la recherche avec troncature est dépendante de la
casse et des diacritiques, même si l'indexation ne l'est pas. Ce
problème vien d'être en partie corrigé dans Lucene, nous sommes en train
de voir comment intégrer les changements dans SDX.

> si j'ai bien compris, executeDateQuery s'exécute sur un seul 
> champ de type 
> date, qui doit donc comporter deux valeurs, ce qui permet de 
> faire des 
> requêtes intéressantes par intervalles ?
> donc si on a dans indexé dans un tel champ qque chose comme 
> "1650    -  1780 "
> la requête (en français) : "entre 1635 et 1790" ramènera le document 
> contenant les valeurs ci-dessus  ?
> impossible d'étendre cette action à deux champs contenant 
> chacun une des 
> bornes de l'intervalle ?

Oui, nous le faisons souvent pour les archives ;-)

Si on veut dated > 1900 et datef < 2000 (où dated = le champ date de
début et datef = le champ date de fin), alors on peut faire une requête
booléenne:

dated > 1900 ET datef < 2000

Ne pas oublier que pour les requêtes par intervalle de date,
l'intervalle n'est pas obligé d'être borné. On n'a qu'à ne pas mettre de
valeur pour la limite "ouverte", ici la fin de l'intevealle pour dated
et le début de l'intervalle pour datef.

> il se trouve que mes documents XML contiennent deux champs 
> date (Date de 
> début  ; Date de fin ) indexés pour l'instant séparément. 
> Pour l'instant ce 
> sont des champs de type field, et comme le format de dates 
> est ISO 8601, ça 
> permet de faire quelques requêtes intéressantes avec des 
> troncatures, mais 
> la marge de manoeuvre est limitée

Pourquoi ne pas indexer en champ date?

> et encore : si j'ai bien compris, rien n'empêche de construire une 
> application multibases, donc avec de quoi mettre en oeuvre une 
> interrogation multibases, tout en donnant le moyen à l'utilisateur 
> d'interroger chaque base (ou un choix de bases ) de l'appli 
> séparément, 
> avec par ex. des champs d'indexation spécifiques dûment 
> déclarés, des *.xsp 
> etc spécifiques ?

Par exemple, mais pas besoin de faire des XSP spécifiques.

Si on a dans une XSP:

<sdx:execute*Query ... baseParam="b"/>

Et qu'on appelle cette XSP avec une URL telle que:

....xsp?...&b=b1&b=b2

Alors la recherche s'effectuera dans les bases b1 et b2. On peut par
exemple mettre des cases à cocher dans l'interface utilisateur pour lui
laisser la possibilité de choisir ses bases.

A noter que cela fonctionne pour des bases d'une autre application, mais
il faut aussi spécifier l'application en question, par son identifiant.

A bientôt,

Martin Sévigny





reply via email to

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