sdx-users
[Top][All Lists]
Advanced

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

[sdx-users] J'y étais presque...


From: Pierre Dittgen
Subject: [sdx-users] J'y étais presque...
Date: Thu, 23 Oct 2003 18:34:31 +0200
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.5) Gecko/20031007

Bonsoir,

Je suis en train de tester des variantes de requête avec joker et accents. Mon but étant de savoir combien de documents ont un champ prénom commençant par une lettre donnée.

Prérequis :
* prenom est un champ indexé de type field
* w-prenom est un champ indexé de type word
* Dans ma base de documents, on trouve les valeurs :
- doc1 (prenom=arbre)
- doc2 (prenom=âne)
- doc3 (prenom=à l'abordage)
- doc4 (prenom=Aline)
- doc5 (prenom=À la garde !)
(étranges prénoms, j'en conviens, encore que... j'ai déjà rencontré une Aline)

Voici ce que j'ai constaté :

La requête linéaire (linearquery) lucene suivante
prenom:a*
me retourne doc1 (prenom=arbre)

La requête linéaire lucene suivante
w-prenom:à*
me retourne doc3 (prenom=à l'abordage)

La requête linéaire lucene suivante
w-prenom:a*
me retourne doc1 (prenom=arbre) et doc4 (prenom=Aline)

La requête linéaire lucene suivante
w-prenom:à*
ne me retourne rien

Apparemment, pour obtenir toutes les variantes accentuées, la solution est de faire une requête combinant toutes les valeurs possibles séparées avec des opérateurs 'or' :
(prenom:a) (prenom:â) (prenom:à) (prenom:A) (prenom:À)

C'est un peu lourd mais c'est faisable.
(je l'ai fait, en écrivant un fichier XML qui dit pour chaque lettre majuscule de l'alphabet français, quelles sont les variantes majuscules et minuscules)

Maintenant, si je souhaite avoir la liste des termes pour le champ "prenom" qui commence par a (et toutes ses variantes) comment puis-je me débrouiller. Apparemment, sdx:terms ne prend en compte que la première valeur du paramètre "value" ?

Merci pour vos lumières
Pierre
--
Pierre Dittgen, address@hidden
PASS Technologie http://www.pass-tech.fr







reply via email to

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